Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1583 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [scheme] somme des elements d'une liste, qu'est ce qui va pas??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[scheme] somme des elements d'une liste, qu'est ce qui va pas??

n°614746
Serryi
Posté le 18-01-2004 à 11:37:09  profilanswer
 

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  :pt1cable:  
 
voici le code :
 
(define (somme-liste L)
  (if (pair? L)
      (+ (car L)
         (somme-liste (cdr L)))
      (list)))
 
quelqu'un a une idee???

mood
Publicité
Posté le 18-01-2004 à 11:37:09  profilanswer
 

n°614757
antsite
Je me souviens
Posté le 18-01-2004 à 12:07:07  profilanswer
 

(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))))))


Message édité par antsite le 18-01-2004 à 12:10:23
n°614770
Serryi
Posté le 18-01-2004 à 12:19:37  profilanswer
 

antsite a écrit :

(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))))))


 
 
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 :jap:  
 
:hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [scheme] somme des elements d'une liste, qu'est ce qui va pas??

 

Sujets relatifs
A la recherche d'un script php de liste de dvd sous EasyPHP1.7liste des collections vba excel
[KSH] Connaitre le nombre de valeurs dans une liste ??[C++] Utilisation de Scheme au sein d'une application C++
[HTML] formulaire de modif avec liste déroulante[XSLT/XPath] Sélection de la liste d'attributs sans doublons
[access] Liste déroulante et requête [Résolu]Sélectionner un client parmi une liste "géante" via PHP
[C++] liste chainée de struct avec la STLimbrication de liste
Plus de sujets relatifs à : [scheme] somme des elements d'une liste, qu'est ce qui va pas??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR