Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.forth    |    Forth programmers eat a lot of Bratwurst    |    117,927 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 116,522 of 117,927    |
|    B. Pym to HenHanna    |
|    Lisp problem    |
|    03 Jun 24 07:53:37    |
   
   From: No_spamming@noWhere_7073.org   
      
   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.   
      
      
   SP-Forth   
      
   REQUIRE /STRING lib/include/string.f   
   REQUIRE PLACE ~mak/place.f   
   REQUIRE { ~ac/lib/locals.f   
   REQUIRE StringReplace2 ~nn\lib\string.f   
   REQUIRE printf<[ ~ilya\Lib\win\System\printf.f   
   REQUIRE list-all ~ygrek/lib/list/all.f \ all words for cons pair lists   
   list ALSO!   
   REQUIRE CASE-INS lib/ext/caseins.f \ Case-insensitive.   
      
   : get-bin-digits ( u n -- ...) 0 do dup 1 and swap 2 / loop drop ;   
      
   : str-0-term ( adr) count + 0 swap c! ;   
      
   create form-str 257 allot   
   0 value cnt   
   0 value power   
      
   : dotty { adr len -- }   
    \ Doesn't terminate output string with 0-byte.   
    form-str adr len s" ." s" %d" StringReplace2   
    form-str str-0-term   
    len - to cnt drop   
    1 cnt 0 do 2 * loop to power   
    power 0 do   
    printf<[ i cnt get-bin-digits form-str count ]>   
    type cr   
    loop   
      
      
   s" apple.bun.c" dotty   
      
    ===>   
   apple0bun0c   
   apple0bun1c   
   apple1bun0c   
   apple1bun1c   
      
      
   s" apple.bun.c.d" dotty   
      
    ===>   
   apple0bun0c0d   
   apple0bun0c1d   
   apple0bun1c0d   
   apple0bun1c1d   
   apple1bun0c0d   
   apple1bun0c1d   
   apple1bun1c0d   
   apple1bun1c1d   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca