[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.