SICP 読み (164) 4.1.5 プログラムとしてのデータ
今日、久々に散髪。今通っている店のご主人は渋谷で修行してたとの事。コミュニケーションの齟齬というか、わしの伝え方が微妙だからだと思うんですが、毎回出来上がりに満足してるワケではないんですが (自意識過剰??)、頭洗う時とか各種マッサージの具合がとっても良い感じで良いリフレッシュになります。
で、散髪中に問題 4.15 を瞑想。
問題 4.15
この問題、面白い。まず、例示されているのが以下。
(define (run-forever) (run-vorever)) (define (try p) (if (halts? p p) (run-forever) 'halted))
で、(try try) を評価を検討せい、と。
これ、(halts? try try) の評価が真 (停止する) だったら止まらないし、逆だったら 'halts を戻して終了してしまう。これは halts? の評価と実際の挙動が異なっている。問題の文章にある通り、矛盾してますな。
結局の所、eval しないとその結果は分からんのだ、というのが解じゃないかと。