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 : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.lisp
Date : 18. May 2024, 23:06:16
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240518140005.921@kylheku.com>
References : 1
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-05-18, HenHanna <HenHanna@devnull.tb> 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.'

TXR Lisp:

(defun bindots (str)
  (let* ((s (copy str))
         (ixs (where (op eql #\.) s))
         (n (len ixs)))
    (collect-each ((digs (rperm '(#\0 #\1) n)))
      (set [s ixs] digs)
      (copy s))))

1> (bindots "abc")
("abc")
2> (bindots "a.bc")
("a0bc" "a1bc")
3> (bindots "a.b.c")
("a0b0c" "a0b1c" "a1b0c" "a1b1c")
4> (bindots "a.b.cd.e")
("a0b0cd0e" "a0b0cd1e" "a0b1cd0e" "a0b1cd1e" "a1b0cd0e" "a1b0cd1e"
 "a1b1cd0e" "a1b1cd1e")

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca

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