(Re)Bonjour,
Encore un problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
( define (addr ltc) 
   (cond ( (null? (cdr ltc) )  ltc)
         (else( 
               (addr (
                      append (            
                       cons            
                       (                        
                        cons                                      
                        ( + ( car (car ltc) ) (car (car (cdr ltc) ) ) )                                              
                        (cons (+ (car (cdr (car ltc) ) ) ( car (cdr (car (cdr ltc) ) ) ) ) ())                                                     
                       )                                            
                       ()                                       
                       )                                       
                      (cdr (cdr ltc) )                                  
                      ) 
              ) ) ) ) <- probleme)
Je suis désolé pour l'indentation , j'ai vraiment du mal à en trouver une claire pour ce langage.

Ce programme fait l'addition des termes d'une A-liste et retourne une a-liste d'un seul terme
Exemple :
(addr '( ( 2 3)(3 6)(5 6)))
retourne :
((10 15))

Le programme s'exécute pas trop mal (il crée la liste finale) mais impossible de la retourner ! Le debugueur m'indique une erreur à la parenthèse indiquée.

Dr Sheme indique :
procedure application: expected procedure, given: ((10 15)) (no arguments)
Merci à vous !