hi, would someone please help me with the question below? i tried asking
on comp.lang.functional list but noone responded...


"konsu" <[EMAIL PROTECTED]> wrote in message
news:<ATOx8.42722$[EMAIL PROTECTED]>...
> hello,
> 
> as an exercise, i am trying to implement a pure lambda calculus
interpreter.
> i am using normal order reduction with textual substitution of terms.
> 
> a program that my interpreter accepts is a list of name/term
declarations:
> 
> <name 1> = <lambda term 1>
> ...
> <name N> = < lambda term N>
> 
> each declaration defines a global name and binds a term to it, and the
> interpreter starts evaluation with the term named 'main'.
> 
> 
> i implemented all the functions necessary to evaluate a closed lambda
term,
> and now i got to the point where i need to handle free variables in a
term.
> my assumption is that free variables denote terms declared as above.
> 
> my question is when should i expand free variables? i also would
appreciate
> any references to literature, etc. where this is discussed.
> 
> so far i believe the way to do it is to reduce a term to its normal
form
> without handling free variables, and then, if it has free variables,
look up
> their definitions in the environment and replace them with their
bodies,
> evaluate the resulting term to its normal form again, and keep
repeating
> this process until no free variables are found.
> 
> is this the right way to do it? or should i check for free variables
when i
> compute the WHNF, etc.? any advice from the experts?
> 
> thanks
> konst
> 
> 
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to