Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 1

Liste des GroupesRevenir à cl lisp 
Sujet : Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 1
De : HenHanna (at) *nospam* devnull.tb (HenHanna)
Groupes : comp.lang.lisp
Date : 25. May 2024, 12:06:16
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v2sd6p$2qqmv$1@dont-email.me>
References : 1 2
User-Agent : Mozilla Thunderbird
On 5/24/2024 5:54 AM, WJ wrote:
On 5/18/2024, HenHanna wrote:
 
>
How can i write this function simply?   (in Common Lisp)
>
-- Given a string  'a.bc.'   -- replace each dot(.)  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, e.g.   (a $ b c $)  rather than  'a.bc.'
 Gauche Scheme:
 (define (dotty s)
   (define (f r) (dotty (regexp-replace "[.]" s r)))
   (if (string-scan s #\.)
     (apply append (map f '("0" "1")))
     (list s)))
  gosh> (dotty "a.b.c")
("a0b0c" "a0b1c" "a1b0c" "a1b1c")
  
nice...    The description "a Lisp Haiku"  seems appropriate
                            (since i don't fully get how it works)
i've not seen that style before... what else would you write in that style?   Permutation?  Combination?  Cartesian-Power?
here's a slight rewrite.  I'd never used map! before today.
(use scheme.list)
(define (dotty x)
   (if (string-scan x #\.)
     (map! (lambda (d) (dotty (regexp-replace "[.]" x d)))
           (list "0" "1"))
     (list x)))
oh..Ok..i still need to do Apply-Append
                 because map! is NOT  (at all like)  Mapcan

Date Sujet#  Auteur
18 May 24 * Given string 'a.bc.' -- replace each dot(.) with 0 or 122HenHanna
18 May 24 +- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11Kaz Kylheku
18 May 24 +* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 13Kaz Kylheku
19 May 24 i+- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11steve
19 May 24 i`- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11Kaz Kylheku
19 May 24 +* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 14Madhu
19 May 24 i`* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 13steve
19 May 24 i `* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 12Madhu
29 May 24 i  `- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11steve
19 May 24 +- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11steve
19 May 24 +* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 17Joerg Mertens
21 May 24 i`* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 16HenHanna
22 May 24 i `* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 15Madhu
29 May 24 i  `* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 14steve
29 May 24 i   `* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 13Lawrence D'Oliveiro
29 May 24 i    `* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 12Madhu
30 May 24 i     `- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11steve
24 May 24 +* Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 13WJ
25 May 24 i+- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11HenHanna
26 May 24 i`- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11Madhu
24 May 24 +- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11Mark Wooding
26 May 24 `- Re: Given string 'a.bc.' -- replace each dot(.) with 0 or 11B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal