Groups | Search | Server Info | Login | Register


Groups > comp.lang.lisp > #60601

Re: Functions on generic sequences

From "B. Pym" <Nobody447095@here-nor-there.org>
Newsgroups comp.lang.lisp
Subject Re: Functions on generic sequences
Date 2025-08-05 09:47 +0000
Organization A noiseless patient Spider
Message-ID <106sjus$2m83m$1@dont-email.me> (permalink)
References <104vgfn$2k6u3$1@dont-email.me>

Show all headers | View raw


B. Pym wrote:

> Kenny Tilton wrote:
> 
> > > What if the sequence is empty?
> > > 
> > > (defun average (sequence)
> > >   (let ((len 0)
> > >         (sum 0))
> > >     (map nil #'(lambda (elt)
> > >                  (incf len)
> > >                  (incf sum elt))
> > >          sequence)
> > >     (if (zerop len)
> > >         0
> > >         (/ sum len))))
> > 
> > (defun average (sequence &key (key #'identity) &aux (len 1))
> >      (/ (reduce (lambda (x y)
> >                   (incf len)
> >                   (+ x y))
> >           sequence :key key :initial-value 0)
> >        len))
> 
> Testing:
> 
> * (average '(2 3 4))
> 
> 9/4
> 
> Incorrect.
> 
> 
> Gauche Scheme
> 
> (define (average seq)
>   (let1 len 0
>     (if (null? seq)
>       0
>       (/ (fold (lambda (x sum) (inc! len) (+ x sum))
>            0
>            seq)
>          len))))

(defun average (seq)
  (if seq
    (do ((sum 0 (+ sum (pop seq)))
         (i 0 (+ 1 i)))
      ((not seq) (/ sum i)))
    0))

Back to comp.lang.lisp | Previous | NextPrevious in thread | Find similar


Thread

Re: Functions on generic sequences "B. Pym" <Nobody447095@here-nor-there.org> - 2025-07-13 05:33 +0000
  Re: Functions on generic sequences "B. Pym" <Nobody447095@here-nor-there.org> - 2025-08-05 09:47 +0000

csiph-web