Sujet : Re: Finding Average without using Recusrion only using Prog
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.lispDate : 10. Aug 2024, 01:30:54
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240809162102.706@kylheku.com>
References : 1 2
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-08-09, steve g <
sgonedes1977@gmail.com> wrote:
"B. Pym" <No_spamming@noWhere_7073.org> writes:
>
< > (defun avg (args)
< > (loop for x in args
< > for l upfrom 1
< > summing x into tot
< > finally (return (/ tot l))))
>
>
>
>
>
Gauche Scheme
>
(use gauche.collection) ;; fold2
>
(define (add&count n sum cnt) (values (+ sum n) (+ cnt 1)))
>
(define (avg nums)
(apply /
(values->list
(fold2
add&count
0 0
nums))))
>
(avg '(20 30 40 50 60 70 80))
===>
50
>
>
(loop for x in '(1 2 3 4 5)
summing x into max
counting x into cnt
finally (pprint (/ max cnt)))
2> [[callf / sum len] '(1 2 3 4 5)]
3.0