• 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)