[racket-dev] OT: stump misunderstands Scheme?

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Nov 16 17:27:54 EST 2010

Three minutes ago, Robby Findler wrote:
> On Tue, Nov 16, 2010 at 4:19 PM, Eli Barzilay <eli at barzilay.org> wrote:
> >
> > Sounds to me like the classic problem that some "symbolic" people
> > have when they don't "get" hygiene (usually ending up in
> > `defmacro' nostalgia where "symbols are symbols", possibly
> > together with `eval' abuse).
> That example in the end of the quoted region is somehow turning a
> procedure back into a datum by passing it to car/cdr. (strange!)

Yeah, that's part of why it looked even more confused than I initially
thought.  I don't remember ever seeing a real scheme where functions
were represented as lists that way.  (Not counting reflective toys, of
course.)  His lack of `caddr' also makes me think that he's not a
native speaker...

Two minutes ago, Shriram Krishnamurthi wrote:
> You know, it's not inconceivable such a thing could happen if you
> had a PURELY syntactic *interpreter*.
> I remember when I got to Brown, they were using one of those weirdo
> Scheme interpreters, and had come to conclusions about the semantics
> of Scheme on the basis of its behavior.  Things like you could run
> ('(lambda (x) x) 3)
> and it would evaluate to 3 because of the way the interpreter was
> structured.

And an obvious question is what would

  (let ([x 1]) ('(lambda () ,x)))

evaluate to?

In any case, if you swallow that pill and take a dose of dynamic scope
too, you end up with newlisp.  (Which I think makes perfect sense in
that world.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.