LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

в Java/JS/... - это concurrency примитив, 'контейнер' для результатов (часть методов которого - блокирующие)
в Scheme promise - это control feature, которая просто позволяет делать delayed evaluation
Так ли это?

Да. Можешь считать это аналогом lazy evaluation. Название одинаковое, а смысл разный.

или достаточно будет создать обычный класс Promise, который просто хранит тело выражения (s-exp) и результат (если есть), а force просто берет тело и выполняет его (передает хранящийся в promise s-exp evaluator'у)?

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

Исходная версия Legioner, :

в Java/JS/... - это concurrency примитив, 'контейнер' для результатов (часть методов которого - блокирующие)
в Scheme promise - это control feature, которая просто позволяет делать delayed evaluation
Так ли это?

Да. Можешь считать это аналогом lazy evaluation. Название одинаковое, а смысл разный.

или достаточно будет создать обычный класс Promise, который просто хранит тело выражения (s-exp) и результат (если есть), а force просто берет тело и выполняет его (передает хранящийся в promise s-exp evaluator'у)?

Про захват переменных не забывай только.