Rocksolid Light

News from da outaworlds

mail  files  register  groups  login

Message-ID:  

You're ugly and your mother dresses you funny.


comp / comp.lang.lisp / Re: Given string 'a.bc.' -- each dot(.) is to be replaced with 0 or 1

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

1
Subject: Re: Given string 'a.bc.' -- each dot(.) is to be replaced with 0 or 1
From: HenHanna
Newsgroups: comp.lang.scheme, comp.lang.lisp
Organization: A noiseless patient Spider
Date: Sun, 19 May 2024 07:19 UTC
References: 1
Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: HenHanna@devnull.tb (HenHanna)
Newsgroups: comp.lang.scheme,comp.lang.lisp
Subject: Re: Given string 'a.bc.' -- each dot(.) is to be replaced with 0 or 1
Date: Sun, 19 May 2024 00:19:15 -0700
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <v2c95k$38qpc$4@dont-email.me>
References: <v29orm$2mr5l$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 19 May 2024 09:19:17 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="c9b538879cf3e39a2903d58d140dec87";
logging-data="3435308"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19LDIq/cPCWae23HdPqwDVu2YkumN79jt0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:q9pcDeYDFiydBTCiLv7kyneVbLI=
In-Reply-To: <v29orm$2mr5l$1@dont-email.me>
Content-Language: en-US
View all headers

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

1

rocksolid light 0.9.8
clearnet tor