Dynamic scoping
- To: mathgroup at smc.vnet.net
- Subject: [mg129642] Dynamic scoping
- From: Daniel Huber <danielphuber at gmail.com>
- Date: Sat, 2 Feb 2013 01:15:47 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
Block is supposed to be a dynamic scoping construct. Therefore, in the following, "Print" should be an undefined function. But consider:
Block[{Plus},
t = ToString[Plus[1, 2]];
Print[t];
]
The output of this is: "3" and not "Plus[1,2]" as it would be if "Print" has no defined meaning.
cheers, Daniel