Open Source WEB

##(link2sicp "book-Z-H-10.html#%_thm_1.5" "Exercise 1.5")

解答例

作用順序評価器では

(test 0 (p))
==> (test 0 (p)) ;; 引数 0 を評価
==> (test 0 (p)) ;; 引数 (p) を評価 
==> 無限ループ

正規順序では

(test 0 (p))
==> ((lambda (x y) (if (= x 0) 0 y)) 0 (p)) ;; testを評価
==> (if (= 0 0) 0 (p))                      ;; 関数を適用
==> (if #t 0 (p))                           ;; 条件節を評価
==> 0                                       ;; 条件節がtrueになったので
                                            ;; then節の 0 を値として返す

となる。この場合、正規順序の評価器が上の式で (p) を評価することはない。

コード

##(sicp-answer-code "ex-1.5.scm")

このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us