Покажите, что невозможно написать процедуру halts?
Если даны одноаргументная процедура 
p
 и объект 
a
, то говорят, что 
p
 «останавливается» на 
a
, если выражение 
(p a)
 возвращает значение (а не печатает сообщение об ошибке или выполняется вечно). Покажите, что невозможно написать процедуру 
halts?
, которая бы точно определяла для любой процедуры 
p
 и любого объекта 
a
, останавливается ли 
p
 на 
a
. Используйте следующее рассуждение: если бы имелась такая процедура 
halts?
, можно было бы написать следующую программу:
(define (run-forever) (run-forever))
(define (try p)
  (if (halts? p p)
      (run-forever)
      'halted))Теперь рассмотрите выражение 
(try try)
 и покажите, что любое возможное завершение (остановка или вечное выполнение) нарушает требуемое поведение 
halts?
.
Комментарии отсутствуют.