When is a closure a real one? [was: Real closures]

Mathieu mathk.sue at gmail.com
Sun Oct 8 10:10:49 UTC 2006


Klaus D. Witzel a écrit :
> Hi Mathieu,
> 
> on Sun, 08 Oct 2006 11:26:00 +0200, you wrote:
>> Klaus D. Witzel a écrit :
>>> Thank you Mathieu and Phillipe for you pointers and example.
>>>
>>> Just out of curiosity (and as input for writing accurate yes/no test
>>> cases :) let me ask what is expected by the community (apologies if this
>>> sounds like a silly question ;-) when is a closure a real one:
>>>
>>> 1] after #fixTemps (or equivalent)
>>
>> no
>>>
>>> 2] after #blockCopy: (is this equivalent to 1?)
>>
>> no and it's not equivalent to 1.
> 
> And *exactly after* the respective operation? Don't they have the same
> values represented by the same names?
> 
>> In fact blockCopy create a BlockContext.
> 
> Ah :)
> 
>> And a BlockContext is not a closure, it's more like MethodContext.
> 
> This is the question that I'm trying to address by using equivalency
> (not identity). A counter example for you: a block with a single
> argument which does *not* access anything else but the argument, always
> has equivalent state and behavior (in terms of what you put inside
> [:x|...]) and that is regardless of 1, 2 or 3.

Oh! yes I misinterpret your question. In away yes it's the same.

> 
>> See:
>> http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_chapter27.html#Contexts27
>>
>>
>>>
>>> 3] after #createBlock: (is this equivalent to 1? to 2?)
>>
>> Yes and in a way it can be equivalent to 1 plus 2.
> 
> In what way, mind to elaborate a bit. Thank you.

Yes and I think the best is to ask Marcus

> 
> /Klaus
> 
>>>
>>> 4] <put: your requirements: or thoughts: here>
>>>
>>> Thank you for your time!
>>>
>>> /Klaus
>>>





More information about the Squeak-dev mailing list