Порядок оценки для выражения ((лямбда (х) (* х 2)) (+ 3 1))? - PullRequest
0 голосов
/ 27 сентября 2018

A

((lambda (x) (* x 2)) (+ 3 1))
((lambda (x) (* x 2)) 4)
(* 4 2)
8

B

((lambda (x) (* x 2)) (+ 3 1))
(* (+ 3 1) 2)
(* 4 2)
8

Я думаю, есть 2 версии.Но я не уверен, какой из них правильный.

1 Ответ

0 голосов
/ 27 сентября 2018

Второй использует то, что SICP называет заменой.Это не то, что делают настоящие шутки, это описывается как учебное упражнение в главе 1. Как только специальные формы, такие как let get вводятся, это не работает.

Первый использует аппликативный порядок и является тем, что делает реальная реализация схемы, подобная ракетке.Он оценивает лямбду, затем вычисляет следующее выражение, затем применяет функцию, полученную в результате лямбды, к результату вычисления (+ 3 1).

Вот как Джеральд Суссман объясняет, как он использует модель замещения :

Если мы собираемся понять процессы и то, как мы их контролируем, тогда мыдолжны иметь представление о механизмах этой процедуры в том, как эти процессы ведут себя.То, что мы собираемся иметь, - это формальная или полуформальная механическая модель, посредством которой вы понимаете, как машина в принципе может это сделать.Действительно ли настоящая машина делает то, что я собираюсь вам сказать, в данный момент совершенно не имеет значения.

Фактически, это техническая модель, аналогично [для] электрического резистора.мы записываем модель V = IR - это приблизительно верно, но это не совсем так;если я подведу достаточное количество тока через резистор, то он поднимется, так что напряжение не всегда будет пропорционально току, но для некоторых целей подходит модель.

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

И эта модель замещения будет точной для большинства вещеймы будем иметь дело с в ближайшие дни.Но в конце концов станет невозможно поддерживать иллюзию того, что именно так работает машина, и мы перейдем к другим, более конкретным и конкретным моделям, которые будут показывать больше деталей.

...