関数の評価順序
call by value
まず引数を先に評価し、その値を使って関数の 本体を評価する。
call by name
引数は評価せずに、関数の本体を評価し、引数を使って いるところに来たら、その引数も評価する。
> (define (p) (p))
> (trace p)
> (p)
| > (p)
| > (p)
| > (p)
| > (p)
*** INTERRUPTED IN ##procedure-name
1> ,d
> (define (test x y) (if (= x 0) 0 y))
> (test 0 (p))
^C*** INTERRUPTED IN p, (stdin)@26.14
1> ,d

一覧 前へ 次へ