On Mon, Dec 20, 2010 at 3:56 PM, Noel Welsh <noelwe...@gmail.com> wrote:
> On Mon, Dec 20, 2010 at 9:51 PM, Robby Findler
> <ro...@eecs.northwestern.edu> wrote:
>> The expanded code doens't look very good, imo, tho, so perhaps whoever
>> recently was working on this can clean this part up too.
>
> I have a name ;-P  Perhaps you could elaborate on "doesn't look very
> good". I spent a little bit of time optimising it.

I'm sorry Noel. I had forgotten who did that.

I don't think your changes had anything to do with the "doens't look
very good". But since you asked, if you look at the fully expanded
version of

  (λ (v) (for ([x (in-vector v)]) x))

you'll see it begins like this:

    (let-values (((vec len)
                  (let-values (((vec) v))
                    (if (#%app vector? vec)
                      (#%app void)
                      (let-values () (#%app in-vector vec)))
                    (#%app values vec (#%app unsafe-vector-length vec)))))

with an unnecessary use of multiple values that just binds 'vec' to
'vec' and otherwise could avoid multiple values and thus be
future-safe.

Robby
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to