La fonction que j'ai écrit pour SICP 2.20 est:Quel est le problème avec mon code de schéma?
(define (same-parity x . y)
(if (null? (car y)
'()
(if (= (even? (car y)) (even? x))
(cons (car y) (same-parity (cons x (cdr y))))
(same-parity (cons x (cdr y))))))
Et puis j'essaie de l'appeler avec
(same-parity 1 2 3 4 5 6 7)
L'erreur que je reçois est: « Le #t objet, passé comme premier argument à integer-equal? n'est pas le bon type. "
Je pensais que des œuvres égales aveC#t et #f ...
Un exemple de code que je trouve est en ligne ce qui suit, je l'ai couru et il fonctionne. Mais qu'est-ce que je fais de mal?
(define (same-parity a . rest)
(define (filter rest)
(cond ((null? rest) '())
((= (remainder a 2) (remainder (car rest) 2))
(cons (car rest) (filter (cdr rest))))
(else
(filter (cdr rest)))))
(filter (cons a rest)))
vous ne devriez pas donner une liste? (same-parity '(1 2 3 4 5 6 7)) – dutt
J'ai essayé ça, ça n'a pas marché. Pour clarifier, le code que j'ai trouvé comme une solution a fonctionné comme prévu avec l'appel donné. – aeroegnr