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 しないとその結果は分からんのだ、というのが解じゃないかと。