On Feb 21, 2007, at 5:30 AM, Michael Sperber wrote:
>
> Abdulaziz Ghuloum <aghuloum_at_cs.indiana.edu> writes:
>
>> [Lots of explanation]
>
>> Basically, in your model, you lose side effects when you exit the
>> dynamic context, while in Kent's model, side effects to parameters
>> are remembered and restored properly.
>
> So the swapping compensates for the effect of side effects, and gets a
> notion similar to "call/cc captures the contents of the storage
> associated with the parameters." Except it seems to break down in the
> presence of threads, as Kent explained here:
>
> http://lists.r6rs.org/pipermail/r6rs-discuss/2007-February/001536.html
I don't see how Kent "explained" that the model breaks down. All I can
get is Kent making a distinction between 1. manipulating a value stored
in a parameter (using parameterize or by direct procedure application)
and 2. mutating the location where a parameter object (a procedure) is
stored (using set!).
Since a parameter in Chez is a first-class object, parameterize captures
the value of the object, not the location where the parameter is stored.
This is in contrast with fluid-let, which captures the location of the
dynamic variable and mutates it using set!.
Aziz,,,
Received on Wed Feb 21 2007 - 06:00:10 UTC