Sujet : Re: Returning no value
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.schemeDate : 30. Aug 2024, 11:13:19
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vas2fe$ebqd$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Ken Tilton wrote:
Steven M. Haflich wrote:
I think the OP may be looking for something like this:
>
cl-user(10): (defun foo()
(let ((x (random 10)))
(and (< 5 x) x)))
foo
cl-user(11): (loop repeat 10
as x = (foo)
when x collect x) ; <<<<<
(6 8 9)
Sweet. But not wnat someone already offered?:
(loop repeat 10
when (foo)
collect it)
Gauche Scheme
(define (foo) (let1 x (random-integer 10) (and (< 5 x) x)))
(define (tcollect func tries)
(if (zero? tries)
'()
(append (cond ((func) => list) (#t '()))
(tcollect func (- tries 1)))))
(tcollect foo 10)
(9 8 9 6 7 9)
(tcollect + 3)
(0 0 0)