Каково значение этой Схемы

Я являюсь новым для Интригования путем рассмотрения Упражнения 1.5 SICP, каково значение/использование этого выражения?

(define (p) (p))

Спасибо!

5
задан Nick Dandoulakis 27 May 2010 в 20:33
поделиться

2 ответа

(define (p) (p))

Выше определена функция p, не принимающая аргументов и вызывающая себя рекурсивно (бесконечно).

Упражнение 1.5 посвящено оценке аппликативного и нормального порядка.

(define (test x y)
  (if (= x 0)
       0
       y))

(test 0 (p))

При аппликативном порядке оцениваются все аргументы, а затем они применяются к test, поэтому программа зависнет, если интерпретатор использует этот вид оценки в данном конкретном случае.

8
ответ дан 13 December 2019 в 22:02
поделиться

'define' определен в самом начале, в главе 1 :

Общая форма определения процедуры -

(define ( <формальные параметры>) )

После того, как вы оцените определение, вы увидите, что ваша процедура просто вызывает саму себя. Уловка заключается в порядке оценки аргументов процедуры «теста», как вы могли понять из вопроса упражнения.

2
ответ дан 13 December 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: