somme des elements d'une liste, qu'est ce qui va pas?? [scheme] - Divers - Programmation
Marsh Posté le 18-01-2004 à 12:07:07
(define (somme-liste l)
(apply + l))
sinon ton code ne marche pas parce que une fois que tu as parcouru toute ta liste tu ne retourne pas le résultat mais (list), d'ailleurs je vois pas ce que tu veux faire avec (list), une liste vide ? > '() ou ()
sans apply :
non terminal:
(define (sum l)
(if (null? l) 0 (+ (car l) (sum (cdr l)))))
terminal:
(define (sum l)
(let aux ((l l) (res 0))
(if (null? l) res (aux (cdr l) (+ res (car l))))))
Marsh Posté le 18-01-2004 à 12:19:37
antsite a écrit : (define (somme-liste l) |
merci beaucoup antiste
oui, (list)=()
en fait, j'ai comprit grace a ton code, il faut trouver une condition zero, donc en modifiant mon code, ca donne :
(define (somme-liste L)
(if (pair? L)
(+ (car L)
(somme-liste (cdr L)))
0))
et là ca marhce nikel,
donc merci a toi
Marsh Posté le 18-01-2004 à 11:37:09
salut,
voila je voudrais faire un petit truc tout bete en scheme: la somme des elements d'une lsite... mais mon code marhce pas, je vois pas ou est l'erreur
voici le code :
(define (somme-liste L)
(if (pair? L)
(+ (car L)
(somme-liste (cdr L)))
(list)))
quelqu'un a une idee???