Re: Bug, quirk or expected behavior of Slot[]?

• To: mathgroup at smc.vnet.net
• Subject: [mg101786] Re: [mg101759] Bug, quirk or expected behavior of Slot[]?
• From: "Elton Kurt TeKolste" <tekolste at fastmail.us>
• Date: Fri, 17 Jul 2009 05:02:47 -0400 (EDT)
• References: <200907161219.IAA02496@smc.vnet.net>

The third equation is symbolically different from the first two since,
symbolically, y===y is true and y===0 is false.

The local variable inside and the input parameter are different despite
both being referenced by the symbol "y."

All three functions are in fact the same as numeric functions:

In[29]:= ex1 = Function[Module[{y = 0}, # === y]];

In[24]:= ex1 /@ Range[0, 3]

Symbolic interpretation: input symbol y, set it to zero and check that
it equals itself.

Out[24]= {True, False, False, False}

In[30]:= ex2 = Function[Module[{y = 0}, #1 === y]];

In[26]:= ex2 /@ Range[0, 3]

Out[26]= {True, False, False, False}

Symbolically the same as eq1.

In[31]:= ex3 = Function[t, Module[{y = 0}, t === y]];

In[28]:= ex3 /@ Range[0, 3]

Out[28]= {True, False, False, False}

Symbolically: assign the symbolic parameter y to t, set a local
parameter (named y but different) to zero and check y==0

Kurt

On Thu, 16 Jul 2009 04:19 -0400, "Salvatore Mangano"
<smangano at into-technology.com> wrote:
> Someone on the "Linked In" Mathematica User group pointed this out to me:
>
>
> In[26]:= Clear[y]
> Function[Module[{y=0},#===y]][y]
> Function[Module[{y=0},#1===y]][y]
> Function[t,Module[{y=0},t===y]][y]
>
> Out[27]= True
> Out[28]= True
> Out[29]= False
>
> It leads me to believe # is more like a placeholder for macro-like
> substitution than a formal parameter like t.
>
> Thoughts?
>

• Prev by Date: Demonstrations Surpass 5,000
• Next by Date: Re: Determine if a parameter is a function
• Previous by thread: Bug, quirk or expected behavior of Slot[]?
• Next by thread: Re: Bug, quirk or expected behavior of Slot[]?