Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: "B. Pym" Newsgroups: comp.lang.lisp Subject: Re: Loop? ptooey Date: Fri, 20 Jun 2025 22:45:03 -0000 (UTC) Organization: A noiseless patient Spider Lines: 47 Message-ID: <1034o9e$9uii$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Injection-Date: Sat, 21 Jun 2025 00:45:04 +0200 (CEST) Injection-Info: dont-email.me; posting-host="aa632a0fd11017dc33a603ef85fe3ef5"; logging-data="326226"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/qG2aPCbrtZ7JtV8ceDPE6" User-Agent: XanaNews/1.18.1.6 Cancel-Lock: sha1:tHag5+Pm0HeB22wVk3xgNHuNbsQ= > Kenny Tilton wrote: > > > > KMP: The example you cite is quite simplistic.....snip...A > > > loop like this: > > > > > > (loop for x from 0 > > > for y in some-list > > > when (good-result? y) > > > collect (list x y)) > > > > > > is easy to write and maintain, and much easier to explain than the > > > equivalent, but more Lispy: > > > > > > (do ((x 0 (+ x 1)) > > > (y-list some-list (cdr y-list)) > > > (result '())) > > > ((null y-list) ;; [fixed] > > > (nreverse result)) > > > (let ((y (first y-list))) > > > (when (good-result? y) > > > (push (list x y) result)))) > > > > Ugh. Howse about: > > > > (let ((goody-pos -1) > > goodies) > > (dolist (it some-list (nreverse goodies)) > > (incf goody-pos) > > (when (good-result? it) > > (push (list goody-pos it) goodies)))) > > > > perhaps i will be swayed someday by the charms of loop, but i gotta > > tell you, i just don't get it. is loop for people who can't read lisp? > > can't be, lisp is easier to read than loop. stumped. Gauche Scheme: (use gauche.collection) ;; size-of (filter-map (lambda (x i) (and (> (size-of x) 1) (list i x))) '("a" "or" "I" "can" "o" "burn") (liota)) ===> ((1 "or") (3 "can") (5 "burn"))