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

*To*: "Michael Vanier" <address@hidden>, <address@hidden>*Subject*: Re: Vectors as functions*From*: "Joe Marshall" <address@hidden>*Date*: Fri, 15 Aug 2003 15:29:30 -0400*Cc*: <address@hidden>, <address@hidden>*References*: <20030814170153.80D4B6BEDE@laime.cs.uchicago.edu><AA236D25-CEA2-11D7-B 291-0003938EB888@web.de><16188.3934.267729.188080@cs.brown.edu><32783.141.154.13.159.1060907724.squirrel@stuff.hrnoc.net><200308150336.h7F3aErQ208596@pimout5-ext.prodigy.net><200308150440.h7F4eEW32071@orchestra.cs.caltech.edu><y9lfzk2lwm7.fsf@informatik.uni-tuebingen.de><200308151658.h7FGwCr15280@orchestra.cs.caltech.edu> <nm9y8xuiygs.fsf@scrubbing-bubbles.mit.edu> <200308151830.h7FIU7p17300@orchestra.cs.caltech.edu>*Sender*: address@hidden

The biggest problem with first-class environments ala MIT Scheme is the introduction of new bindings at runtime. If you introduce a new binding, the `lexical address' (frame and offset) of a variable cannot be statically determined and you have to do a deep search every time. It absolutely destroys any sort of compiler optimization. If you went a tad further and allowed *syntactic* binding in first-class environments, you'd be truly hosed. ----- Original Message ----- From: "Michael Vanier" <mvanier@cs.caltech.edu> To: <brlewis@alum.mit.edu> Cc: <sperber@informatik.uni-tuebingen.de>; <ll1-discuss@ai.mit.edu> Sent: Friday, August 15, 2003 14:30 Subject: Re: Vectors as functions > > > From: Bruce Lewis <brlewis@alum.mit.edu> > > Date: 15 Aug 2003 14:10:11 -0400 > > > > Michael Vanier <mvanier@cs.caltech.edu> writes: > > > > > I'm thinking of situations where you might have a list of symbols > > > representing names (or first-class names) and you might want to set their > > > values to a given value, like mapping set! over the list of names. Not > > > having names as first-class entities makes that unduly hard. > > > > If you're sure you want to do it this way, and not use a hash table to > > deal with names at run time, then you probably want Common Lisp. > > > > How would you use a hash table to deal with names at run time? > > [To Mike Sperber] Does "set" in common lisp destroy lexical scoping? I'm > not sure exactly what you were getting at, although I dimly understand that > there could be a problem. > > I feel like first-class environments a la MIT scheme are also relevant to > this discussion, but I don't really know much about them. Any MIT schemers > want to comment? > > I guess the bottom line is: how much freedom to mess around with the local > environment is consistent with lexical scoping? > > Mike >

**Follow-Ups**:**Re: Vectors as functions***From:*James McCartney <asynth@io.com>

**Re: Vectors as functions***From:*Dan Sugalski <dan@sidhe.org>

**Re: Vectors as functions***From:*James McCartney <asynth@io.com>

**Re: Vectors as functions***From:*Michael Vanier <mvanier@cs.caltech.edu>

**References**:**Re:***From:*Robby Findler <robby@cs.uchicago.edu>

**Vectors as functions***From:*Shriram Krishnamurthi <sk@cs.brown.edu>

**Re: Vectors as functions***From:*mike@newhall.net

**Re: Vectors as functions***From:*Robby Findler <robby@cs.uchicago.edu>

**Re: Vectors as functions***From:*Michael Vanier <mvanier@cs.caltech.edu>

**Re: Vectors as functions***From:*Michael Sperber <sperber@informatik.uni-tuebingen.de>

**Re: Vectors as functions***From:*Michael Vanier <mvanier@cs.caltech.edu>

**Re: Vectors as functions***From:*Bruce Lewis <brlewis@alum.mit.edu>

**Re: Vectors as functions***From:*Michael Vanier <mvanier@cs.caltech.edu>

- Prev by Date:
**Re: Vectors as functions** - Next by Date:
**Re: Vectors as functions** - Previous by thread:
**Re: Vectors as functions** - Next by thread:
**Re: Vectors as functions** - Index(es):