Sujet : Re: Loopy
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.lispDate : 10. Jun 2024, 08:17:09
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v465p2$7ib2$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
On 6/9/2024, B. Pym wrote:
The ability in loop to do even complex things like:
(loop for x in '(1 2 3 4 5 6 7)
when (evenp x)
collect x into evens
else
collect x into odds
finally
(return (values evens odds)))
=> (2 4 6), (1 3 5 7)
Peter Seibel wrote:
> (loop for x across array-of-numbers
> minimizing x into min
> maximizing x into max
> summing x into total
> counting t into count
> finally (return (list min max (/ total count))))
In Gauche Scheme, it's a one-liner.
(use gauche.sequence)
(define v #(0 2 -3 99 48 35 86 27 50 18))
(define count (vector-length v))
`(,(find-min v) ,(find-max v) ,(/ (fold + 0 v) count))
===>
(-3 99 181/5)
--