Re: is Head[] part of the expression?
- To: mathgroup at smc.vnet.net
- Subject: [mg126934] Re: is Head[] part of the expression?
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Mon, 18 Jun 2012 05:46:32 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jrep1p$nrj$1@smc.vnet.net>
Position does look at the head even when you use == or !=. The
difference between x==0 and x===0 is that x==0 will not evaluate to
either True or False when x has no value while x===0 will evaluate to False.
On 2012.06.15. 9:42, Nasser M. Abbasi 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
>
--
Szabolcs Horvát
Visit Mathematica.SE: http://mathematica.stackexchange.com/