On Thu, Aug 2, 2012 at 5:17 PM, Henry Baker <hbaker1@pipeline.com> wrote:
I.e., tail recursion. If bar is a function of one variable, wrapping a lambda(x) around it is useless & wastes stack space.
In Common Lisp:
#'(lambda (x) (bar x))
<=>
#'bar
Hmm. Bar is also in tail position here: (lambda (x) (bar (* x x))) and eta doesn't immediately apply, but I guess you could rewrite it as lambda(x).(bar o * o delta)(x) (where o is composition). That's interesting. Do you know of a paper that talks about that? Googling "tail recursion" "eta equivalence" turned up nothing.
At 04:58 PM 8/2/2012, Mike Stay wrote:
On Thu, Aug 2, 2012 at 4:44 PM, Henry Baker <hbaker1@pipeline.com> wrote:
Eta (I think this is the name?). Tail recursion. You can replace recursion by iteration in certain contexts.
Eta is extensionality, i.e. any term T of type X is eta-equivalent to (lambda x.T(x)) when x is not free in T and x has type X. -- Mike Stay - metaweta@gmail.com http://www.cs.auckland.ac.nz/~mike http://reperiendi.wordpress.com
_______________________________________________ math-fun mailing list math-fun@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
-- Mike Stay - metaweta@gmail.com http://www.cs.auckland.ac.nz/~mike http://reperiendi.wordpress.com