You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
804 B
27 lines
804 B
2 years ago
|
|
||
|
Exercise 1.5: Ben Bitdiddle has invented a test
|
||
|
to determine whether the interpreter he is faced with is using
|
||
|
applicative-order evaluation or normal-order evaluation. He defines the
|
||
|
following two procedures:
|
||
|
|
||
|
|
||
|
(define (p) (p))
|
||
|
|
||
|
(define (test x y)
|
||
|
(if (= x 0)
|
||
|
0
|
||
|
y))
|
||
|
|
||
|
Then he evaluates the expression
|
||
|
|
||
|
|
||
|
(test 0 (p))
|
||
|
|
||
|
What behavior will Ben observe with an interpreter that uses applicative-order
|
||
|
evaluation? What behavior will he observe with an interpreter that uses
|
||
|
normal-order evaluation? Explain your answer. (Assume that the evaluation
|
||
|
rule for the special form if is the same whether the interpreter is
|
||
|
using normal or applicative order: The predicate expression is evaluated first,
|
||
|
and the result determines whether to evaluate the consequent or the alternative
|
||
|
expression.)
|