2015-03-05 5 views

Répondre

3

Vous êtes proche, mais pas tout à fait raison. Il sera plus clair si nous construisons la structure de liste explicitement en utilisant cons; c'est plus comme ça:

(cons 'a 
     (cons (cons (cons 'f 
         (cons 'b 'c)) 
        (cons 'g 
         (cons 'h '()))) 
      (cons 'e '()))) 

=> '(a ((f b . c) g h) e) 

Notez que dans cette partie: (f b . c) nous avons une liste non conforme , parce que la sous-liste ne se termine pas dans null.

+0

Merci beaucoup pour votre réponse très propre !! –

2

votre réponse est incorrecte car il n » t correctement exprimer la liste incorrecte (f b . c). Les parenthèses autour de g h sont également une erreur.

Avec paires en pointillés la pleine expression serait:

'(a ((f b . c) g h) e) 

Notez que '(f b . c) ne sont pas les mêmes que '(f (b c)).

Voir qui '(f (b c)) est:

(cons 'f (cons (cons 'b (cons 'c '())) '())) 

plutôt que ce '(f b . c) est:

(cons 'f (cons (cons 'b 'c) '())) 

Notez la liste incorrecte.

+1

Merci, je n'ai pas pensé par contre :) –