[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: JACAL, scm
From: |
Neil Jerram |
Subject: |
Re: JACAL, scm |
Date: |
18 Oct 2001 00:37:06 +0100 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
>>>>> "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?
Neil
- Re: JACAL, scm, (continued)
- Re: JACAL, scm, Tom Lord, 2001/10/04
- Re: JACAL, scm, Tom Lord, 2001/10/04
- Re: JACAL, scm, Thomas Bushnell, BSG, 2001/10/05
- Re: JACAL, scm, Tom Lord, 2001/10/07
- Re: JACAL, scm, Thomas Bushnell, BSG, 2001/10/08
Re: JACAL, scm, Marius Vollmer, 2001/10/06
Re: JACAL, scm, Mikael Djurfeldt, 2001/10/09
Re: JACAL, scm, Neil Jerram, 2001/10/18
Re: JACAL, scm,
Neil Jerram <=