Вызов по имени
Вызов по имени — одна из вычислительных стратегий, в которой вычисление происходит «вширь», то есть при вызове некоторой функции происходит вычисление её результата, а переданные в неё фактические параметры вычисляются только тогда, когда происходит их вызов. Противопоставляется стратегии вызова по значению. В отличие от последней всегда приводит к получению результата в тех случаях, когда результат получить можно.
Другими словами при использовании стратегии вызова по имени первым вычисляется самое внешнее левое выражение. В λ-исчислении вызову по значению соответствует нормальная редукционная стратегия.
Пример[править | править код]
В качестве примера вычисления выражения, у которого имеется определённый результат, и получить который стратегия вызова по имени позволяет в отличие от стратегии вызова по значению, можно рассмотреть следующий вызов функции. В λ-исчислении имеется терм Ω, который редуцируется сам в себя. Если его передать в качестве параметра в константную функцию (или нечто подобное), то вычисления по стратегии вызова по имени остановятся непосредственно при вызове функции, не углубляясь в вычисления параметров:
Нормальной формой этого терма является , то есть комбинатор тождества I. И стратегия вызова по имени сразу же получает этот результат. В отличие от рассматриваемой стратегии, вызов по значению не позволит получить результат, поскольку сначала попытается вычислить значение терма , и эти вычисления не прекратятся никогда.