From: Eli Bendersky
Subject: Re: lambda returning lambda
Date: 
Message-ID: <cedh97$rr7@odbk17.prod.google.com>
Albert Reiner wrote:
> > (((lambda (y) (lambda (x) (* x y))) 10) 2)
>
> You want to use funcall as ((lambda (y) (lambda (x) (* x y))) 10)
> returns a function
>
> ,----
> | (funcall ((lambda (y) (lambda (x) (* x y))) 10) 2)
> | 20
> `----
>
> > This, however, works:
> >
> > ((lambda (y) ((lambda (x) (* y x)) 10)) 2)
>
> Because you call the function (lambda (y) ((lambda (x) (* y x)) 10))
> with argument 2, which results in the function (lambda (x) (* y x))
> being called with argument 10 and y bound to 2.
> 
> Albert.

Thanks, it's clear to me now !