Это (вроде) выполнимо при некотором взломе ...
По сути, процесс состоит не в том, чтобы возвращать значение после первоначального вычисления, а скорее в том, чтобы вернуть обещание, что вы вычислите значение в какой-то момент.
Таким образом, a + b
вернет объект, представляющий вычисление, которое должно быть выполнено (но фактически не выполняющее вычисление), которое я назову (+ a b)
.
Затем, когда дело доходит до оценки следующего дополнения, мы получаем (+ a b) + c
, что дает (+ a b c)
и т. Д.
Только когда свойство свойства получено, вы фактически выполняете вычисления.