Re: part of the expression?

*To*: mathgroup at smc.vnet.net*Subject*: [mg126901] Re: part of the expression?*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Fri, 15 Jun 2012 15:32:37 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201206150741.DAA24416@smc.vnet.net>

Position always looks at the Head as a part of the expression. The results are due to differences in how the different tests handle the input of Integer. Integer != 0 returns unevaluated whereas PossibleZeroQ[Integer] and SameQ[Integer] evaluate to the boolean False. Bob Hanlon On Jun 15, 2012, at 3:41 AM, "Nasser M. Abbasi" <nma at 12000.org> wrote: > I am now in a state of little confusion about when Head[] > of a list (the value at index 0) is 'looked' at when > passing a list to a function to process the list. > > For example, below I have a list, and then Position[] > is passed this list to find the nonzero elements in > the list. > > Depending on the test for zero used, different > results show up. Sometime the Head[] of the list > is examined (because I get zero index) and sometime > it is not. > > So, my question, what is the rule-of-thumb on this? > I am making a cheat sheet for Mathematica, and > wanted to make a simple rules to remember. > > > -- case 1 ----- > v={1,0,3}; > Position[v,x_/;x!=0] > > Out[68]= {{1},{3}} (*what I expected*) > ----------------------- > > --- case 2 -------------------- > Position[v,x_/;Not[PossibleZeroQ[x]]] > > Out[69]= {{0},{1},{3}} > ---------------------------- > > ----- case 3 --------------------- > Position[v,x_/;Not[SameQ[x,0]]] > > Out[70]= {{0},{1},{3},{}} > -------------------------------- > > ---- case 4-------------- > Position[v, x_ /; Not[SameQ[x, 0]], 2] > > Out[71]= {{0},{1},{3}} > --------------------------- > > thanks, > > --Nasser >

**References**:**is Head[] part of the expression?***From:*"Nasser M. Abbasi" <nma@12000.org>