Dynamic scoping (was: Proposal: Squeak-E = Squeak x Kernel-E)

Stephen Pair spair at acm.org
Mon Jan 27 20:04:13 UTC 2003


Avi Bryant wrote:
> Well, yeah. :) I thought that's what you meant.  Obviously 
> there's no reason you can't have the same interface to both 
> implementation approaches.  I currently use an exception 
> based dynamic scope that looks like
> 
> 
> DynamicContext bind: #foo to: 42 during:
>   [
>     self assert: #foo dynamicValue = 42
>   ]
> 
> self assert: #foo dynamicValue isNil.

Actually, I rather like the #dynamicValue pattern.  Why not this then:

----
DynamicContext clamp: [
	#foo dynamicValue: 42.
	self assert: #foo dynamicValue = 42
].

self assert: #foo dynamicValue isNil
----

With the above, if you need to set several values, you don't need to
enclose your code in several blocks.

- Stephen



More information about the Squeak-dev mailing list