Re: Simple recursive functions in Lisp

Liste des GroupesRevenir à cl lisp 
Sujet : Re: Simple recursive functions in Lisp
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp
Date : 14. Jul 2024, 20:56:39
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v71ahj$9ncm$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
B. Pym wrote:

Pascal Bourguignon wrote:
 
(defun sum (list)
  (loop :for x :in list :sum x))
 
Gauche Scheme
 
(define (sum lst)   (fold + 0 lst))
 
(sum '(1 3 5 7 9))
  ===>
25

Pascal Bourguignon wrote:

Of course, since LOOP is a higher level abstraction.  You should
compare with this iterative form:
>
(defun sum (list)
  (do ((current list (cdr current))
       (sum 0))
      ((null current) sum)
   (setf sum (+ sum (car current)))))

Better:

(define (sum lst)
  (do ((xs lst (cdr xs))
       (res 0 (+ res (car xs))))
    ((null? xs)  res)))


Date Sujet#  Auteur
14 Jul 24 * Re: Simple recursive functions in Lisp2B. Pym
14 Jul 24 `- Re: Simple recursive functions in Lisp1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal