2015/12/22
SICP 問題 4.15
;; 引数の手続きpとオブジェクトaについて,式(p a)停止するかどうかを正確に判断するような手続きhalts?
(define (run-forever) (run-forever))
(define (try p)
(if (halts? p p)
(run-forever)
'halted))
(try try)
;; まずこれが停止すると仮定する.すると(halts? try try)はtrueを返し,then節(run-forever)を実行するので停止しない.
;; 次にこれが停止しないと仮定する.(halts? try try)がfalseなのでelse節'haltsが実行されるので停止する.
;; 矛盾するのでhalts?は定義できない.