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

Re: What's so cool about Scheme?

>> 1. Code = data (including the necessary lambda for getting a handle on
>>    environments to create closure 'data' objects)
>Those are two separate things, but both are useful.  ML languages have
>closures but do not represent code as data.  Having code as data permits
>structural macros.

	I was thinking of the FUNARG prohlem; if you can pass around data and interpret it as code, you will run into the need for closures.  However, a closure can be an opaque object, at which point you're no longer passing around raw code (so it works in ML).  I suppose a language that allowed reified environments would allow one to build closures from raw code.  You need one or the other if you allow code to be interpreted as data.