• #### Re: Given string 'a.bc.' -- each dot(.) is to be replaced with 0 or 1

From HenHanna@21:1/5 to HenHanna on Sun May 19 00:19:15 2024
XPost: comp.lang.scheme

On 5/18/2024 1:28 AM, HenHanna wrote:

How can i write this function simply?   (in Scheme (Gauche))

-- Given a string  'a.bc.' -- each dot(.) is to be replaced with 0 or 1.

-- So the value is a list of 4 strings:
(a0bc0 a0bc1 a1bc0
a1bc1)

-- The order is not important.
If the string has 3 dots, the value is a list of length 8.

If the program is going to be simpler,
pls use, say,   (a \$ b c \$)  rather than  'a.bc.'

___________________________________________________
From the Gauche (Scheme) manual:

(cartesian-product ’((a b c) (0 1)))
⇒ ((a 0) (a 1) (b 0) (b 1) (c 0) (c 1))

________________________________________

The Gauche (Scheme) manual describes
string-count and cartesian-product

as built-in functions, but I couldn't use them and ended up defining
them myself -- Why is that?
Do i have to import libraries, as in Python?

(define (countDots s)
(count (lambda (c) (equal? c #\.))
(string->list s)))

--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)