Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connectionsPath: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: HenHanna Newsgroups: comp.lang.lisp Subject: Re: string chains Date: Tue, 6 Aug 2024 10:02:30 -0700 Organization: A noiseless patient Spider Lines: 63 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 06 Aug 2024 19:02:32 +0200 (CEST) Injection-Info: dont-email.me; posting-host="e8f11e744464abe1aea113e5c87782ad"; logging-data="1812026"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ZDCWM1bRvUGvd76nrXqhHofsANl2BBZk=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:IamhzVnu7bCA5bRPohTwVF0+/qg= Content-Language: en-US In-Reply-To: Bytes: 2967 On 8/5/2024 4:34 PM, B. Pym wrote: >> The task is to somehow implement Amb, and demonstrate it with >> a program which chooses one word from each of the following >> four sets of character strings to generate a four-word >> sentence: >> >> "the" "that" "a" >> "frog" "elephant" "thing" >> "walked" "treaded" "grows" >> "slowly" "quickly" >> >> The constraint to be satisfied is that the last character of >> each word (other than the last) is the same as the first >> character of its successor. >> >> The only successful sentence is "that thing grows slowly"; >> other combinations do not satisfy the constraint and thus >> fail. > > newLISP > > (define (cartesian-product lists) > (if (null? lists) > '(()) > (let (subproduct (cartesian-product (rest lists))) > (apply append > (map > (fn (x) (map (fn (xs) (cons x xs)) subproduct)) > (first lists)))))) > > (define (good? xs) > (for-all > (fn (pair) (starts-with (pair 1) ((pair 0) -1))) > (map list (0 -1 xs) (rest xs)))) > > (filter good? > (cartesian-product > '(("preconize" "cozy" "Lilliputian") > ("climb" "nub" "snob" "end" "yet") > ("however" "by" "but" "so" "tot") > ("the" "that" "a" "tack" "of") > ("frog" "elephant" "thing") > ("walked" "treaded" "grows") > ("slowly" "quickly") > ("yank" "can" "you" "choose") > ("won't" "understand")))) > > (("cozy" "yet" "tot" "that" "thing" "grows" "slowly" "you" > "understand") > ("Lilliputian" "nub" "but" "that" "thing" "grows" "slowly" > "you" "understand")) Did you avoid using Scheme because it's bad for this type of string manipulation? ----- e.g. in Python the last char of string is just String[-1] >>> May 12, 2019 — newLISP is a general purpose scripting language for developing web applications and programs in general in the domains of artificial ...