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[1].  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[2] 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.

[1] http://calculist.blogspot.com/2009/02/history-lesson.html
[2] http://calculist.blogspot.com/2006/03/observable-differences-between.html