Вызов по имени

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск

Вызов по имени — одна из вычислительных стратегий, в которой вычисление происходит «вширь», то есть при вызове некоторой функции происходит вычисление её результата, а переданные в неё фактические параметры вычисляются только тогда, когда происходит их вызов. Противопоставляется стратегии вызова по значению. В отличие от последней всегда приводит к получению результата в тех случаях, когда результат получить можно.

Другими словами при использовании стратегии вызова по имени первым вычисляется самое внешнее левое выражение. В λ-исчислении вызову по значению соответствует нормальная редукционная стратегия.

Пример[править]

В качестве примера вычисления выражения, у которого имеется определённый результат, и получить который стратегия вызова по имени позволяет в отличие от стратегии вызова по значению, можно рассмотреть следующий вызов функции. В λ-исчислении имеется терм Ω, который редуцируется сам в себя. Если его передать в качестве параметра в константную функцию (или нечто подобное), то вычисления по стратегии вызова по имени остановятся непосредственно при вызове функции, не углубляясь в вычисления параметров:

\((\lambda xy.y)\Omega\)

Нормальной формой этого терма является \(\lambda y.y\), то есть комбинатор тождества I. И стратегия вызова по имени сразу же получает этот результат. В отличие от рассматриваемой стратегии, вызов по значению не позволит получить результат, поскольку сначала попытается вычислить значение терма \(\Omega\), и эти вычисления не прекратятся никогда.

См. также[править]