Sujet : Re: Loop? ptooey
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.lispDate : 16. Jun 2024, 01:16:42
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v4l7co$3mbej$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
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 srfi-42) ;; list-ec
(define some-list '(3 4 5 7 8))
(list-ec
(:list x (index i) some-list)
(if (odd? x))
(list i x))
===>
((0 3) (2 5) (3 7))