[jhc] Re: Substitutions.

Samuel Bronson naesten at gmail.com
Wed Feb 27 15:38:04 EST 2008


On 2/23/08, John Meacham <john at repetae.net> wrote:
> On Sat, Feb 23, 2008 at 03:54:39PM +0100, Lemmih wrote:
> > Actually, it might be wise not to do any optimizations in the
> > substitution routine. I assume constant applications are handled
> > elsewhere as well?
>
> The atom invariant insures that beta reduction is a simple source
> transformation that does not change the behavior of the program, not an
> optimization.
>
> E normal form number 2 (a name I just made up :) ) says
> all arguments must be atomic, all applied things may only be simple
> variables or another application, and lambda expressions may only occur
> directly on the RHS of a let binding, the body of a let statment, or in
> a case branch body.
>
> normal form 3 (after lambda lifting) says lambda expressions may _only_
> occur at the top level, no where else.

Gee, maybe this should be documented somewhere?


More information about the jhc mailing list