Funny Behavior of Module
- To: mathgroup at smc.vnet.net
- Subject: [mg124734] Funny Behavior of Module
- From: Louis Talman <talmanl at gmail.com>
- Date: Fri, 3 Feb 2012 02:09:31 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
I know that Module exhibits some funny behavior, but this behavior is something I've never seen before. It seems wrong to me. In a new kernel session enter f[x_] := Module[{a},a = x^2; x = y; a] f[z] z Mathematica returns y for z, as it ought to. (In fact, the purpose of the code was to demonstrate to students what can happen when a Module monkeys with its formal parameters.) But f[z] returns y^2. It seems to me that it should return z^2, but that for some reason it's interpreting the first Set instruction in the body of the Module as a SetDelayed instruction. (We get exactly the same behavior if we replace that Set with SetDelayed in the code.) Can anyone explain what's going on here? ITABOAF? --Lou Talman Department of Mathematical & Computer Sciences Metropolitan State College of Denver <http://rowdy.mscd.edu/%7Etalmanl>