guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: JACAL, scm


From: Dirk Herrmann
Subject: Re: JACAL, scm
Date: Thu, 18 Oct 2001 23:47:23 +0200 (MEST)

On 18 Oct 2001, Neil Jerram wrote:

> >>>>> "Aubrey" == Aubrey Jaffer <address@hidden> writes:
> 
>     guile> (let ((f -)) (let f ((n (f 1))) n)) ==> 1
> 
>     Aubrey> But Allegro Petrofsky, Radey, and I think it should return
>     Aubrey> -1.
> 
> The error here is that Guile transforms
> 
> (let name ((var init) ...) body ...)
> 
> to
> 
> (letrec ((name (lambda (var ...) body ...)))
>   (name init ...))
> 
> This is wrong, because the init's are evaluated inside the environment
> that includes a binding for name.  It should instead be
> 
> ((letrec ((name (lambda (var ...) body ...))) name) init ...)
> 
> Now we just need to translate that into code :-)  Anyone?

I will do it - no big deal (I hope).  But, I won't have time to do it
before next week.  What about adding this code as a test case to the test
suite?  Until it is fixed, it can be tagged as expected to fail.

Best regards
Dirk Herrmann




reply via email to

[Prev in Thread] Current Thread [Next in Thread]