| Deutsch English Français Italiano |
|
<1034o9e$9uii$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: "B. Pym" <Nobody447095@here-nor-there.org>
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"))