Wed Apr 8 15:17:26 CEST 2009
Evaluation Strategies or Lambda Calculi?
Been reading a bit on dave's blog the posts surrounding this. The
main idea being that it makes little sense to talk about a single
lambda calculus (LC) with different reduction strategies like
applicative order or normal order. It's better to make a
special-purpose calculus to model call-by-value and call-by-name
languages (the CBV-LC and CBN-LC). This generalizes to other language
This one was informative:
In call-by-name lambda calculus, the definition of a reducible
expression is an application whose operator is a value. The operand
can be any arbitrary expression. As a result, non-values end up
being passed as arguments to functions. In call-by-value, we
likewise only perform reduction when the operator is a value, but we
also require that the operand be a value as well.