Hi sean

just a question since I started to finally understand for real the multiple 
objects that 
closures represent :)
Would it not make sense to have internally an object (not a closure) that 
represent
a method and that answer the method value or value:

You could save this object and on potentially even generate a block if needed.
I do not think that in magritte we use the closuring aspect of closure we use 
them 
as anonymous method. 

Stef

> On 5 Oct 2019, at 04:58, Sean P. DeNigris <[email protected]> wrote:
> 
> While developing Magritte, I have a problem because blocks that are
> read/written to/from strings (e.g. via Magritte forms) have a different
> outerContext before and after and thus I don't know how (without an ugly
> hack) to determine whether they were changed by the user.
> 
> Question: Is there a smarter way to do block equality?
> Currently in Pharo block comparison is via #==. In Squeak, there is:
> BlockClosure >> #= aClosure 
>        self == aClosure ifTrue: [^true]. 
>        aClosure class = self class ifFalse: [^false]. 
>        (self method == aClosure method and: [startpc = aClosure startpc
> and: [self 
> isClean]]) "<--- this line" 
>                ifTrue: [^true]. 
>        ^outerContext = aClosure outerContext and: [startpc = aClosure
> startpc]

Do you know if they have the new closure model because we are working to move 
to it. 

> 
> I'm not totally sold on the implementation due to the `startpc = aClosure
> startpc` the first time it appears (in the comment-marked line). With it, in
> a workspace, the following is false: `[1] = [1]`, but removing that test
> makes it true. I'd like something that returns true if both blocks are clean
> and they "do the same thing". But I like the track it's on...
> 
> 
> 
> -----
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
> 



Reply via email to