Il faut décider, en fonction de la valeur de:L'interpréteur DrRacket utilise-t-il une évaluation d'ordre normal basée sur l'exercice SICP 1.5?
(test de 0 (p))
où test est défini comme:
(define (test x y)
(if (= x 0)
0
y))
et p est défini comme:
(define (p) (p))
Lorsque j'évalue (test 0 (p))
le dans terpreter va dans une boucle infinie, suggérant qu'il évalue p
. Cela montre l'évaluation d'ordre normal, car les opérandes sont évalués avant d'être remplacés par des paramètres. SICP dit que LISP utilise l'évaluation applicative.
Un conseil utile de la suite du texte: la raison pour laquelle il est appelé "ordre-applicatif" est que les opérandes sont évalués avant que l'opérateur soit ** appliqué **. Il y a un peu plus de discussion sur l'évaluation «paresseuse», etc. au chapitre 3, et je ne pouvais absolument pas garder les deux droites jusqu'à ce que je lise, ils auraient vraiment dû l'expliquer plus tôt que le chapitre 4. – spacemanaki