[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Do-loop enigma with two variables
From: |
Vladimir Zhbanov |
Subject: |
Re: Do-loop enigma with two variables |
Date: |
Fri, 15 Jul 2016 22:36:59 +0300 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Jul 15, 2016 at 06:50:11PM +0000, Mike Gran wrote:
>
> On Friday, July 15, 2016 7:27 AM, Pierre Lairez <address@hidden> wrote:
>
> >
> >
> >Dear guile users,
> >
> >When running the following loop:
> >(do ((i 1 (+ 1 i))
> > (j 0 i))
> > ((> i 4) (newline))
> > (display (list i j)))
> >
> >I expect without hesitation to read
> >(1 0)(2 1)(3 2)(4 3)
> >
> >To my surprise, I obtain
> >(1 0)(2 2)(3 3)(4 4)
>
>
> Yeah, I get the same in 2.0.11
>
> I don't know the correct terminology
>
> The "i" in (j 0 i) is a reference to
>
> the "i" that is bound (+ 1 i).
>
> You can prove this by running the following
>
> (do ((i 1 (+ 1 i)) (j 0 (+ i 0)))
> ((> i 4) (newline))
> (display (list i j)))
>
Yes, I used ,expand to see what's happening, and it seems that
named let is broken: if you replace i with (+ i 0) it uses `some
other i'.
--
Vladimir
- Do-loop enigma with two variables, Pierre Lairez, 2016/07/15
- Re: Do-loop enigma with two variables, Nala Ginrut, 2016/07/15
- Re: Do-loop enigma with two variables, Mike Gran, 2016/07/15
- Re: Do-loop enigma with two variables,
Vladimir Zhbanov <=
- Re: Do-loop enigma with two variables, Taylan Ulrich Bayırlı/Kammer, 2016/07/16
- Re: Do-loop enigma with two variables, Andy Wingo, 2016/07/16
- Re: Do-loop enigma with two variables, Andy Wingo, 2016/07/16