       Re: confused about == vs === in this equality

• To: mathgroup at smc.vnet.net
• Subject: [mg103756] Re: [mg103732] confused about == vs === in this equality
• From: DrMajorBob <btreat1 at austin.rr.com>
• Date: Mon, 5 Oct 2009 07:37:30 -0400 (EDT)
• References: <20091003104738.LCJ3I.416659.imail@eastrmwml34>
• Reply-to: drmajorbob at yahoo.com

```Examples:

a = ComplexInfinity;
a == ComplexInfinity
a === ComplexInfinity

ComplexInfinity == ComplexInfinity

True

a is identical to ComplexInfinity, but it isn't Equal to it, because
ComplexInfinity is an indeterminate form, not Equal to anything... not
even itself.

Clear[a, b]
a == b
a === b

a == b

False

Mathematic doesn't know the values of a and b, so it doesn't know whether
a is equal to b, hence a == b remains unevaluated. But Mathematica DOES
know a and b are not identical.

a == a
a === a

True

True

No matter what value "a" might have (OTHER THAN AN INDETERMINATE FORM), a
== a is True. Mathematic is assuming "a" ISN'T indeterminate, even though
it could be.

Meanwhile, a === a because any expression is identical to itself.

Bobby

On Sun, 04 Oct 2009 04:35:38 -0500, Nasser Abbasi <nma at 12000.org> wrote:

> ?===
> lhs===rhs yields True if the expression lhs is identical to rhs, and
> yields
> False otherwise.
>
> ?==
> lhs==rhs returns True if lhs and rhs are identical.
>
> But looking at this example:
>
> a = ComplexInfinity;
>  If[a == ComplexInfinity, Print["YES"]]
>
> Expecting it would print "YES", but it does not. it just returns the
> whole
> thing unevaluated? But
>
> If[a === ComplexInfinity, Print["YES"]]
>
> does return YES.
>
> I guess I am a little confused about the "expression" bit in the
> definition.
>
> So, when using the 3"=", it is looking at the _value_ of the expression,
> but
> when using the 2"=", it is looking at the expression _as it is_, i.e.
> without evaluating it?  Is this the difference?  I've always used the
> 2"="
> for equality, now I have to be more careful which to use.
>
> --Nasser
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4478 (20091003) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>
>

--
DrMajorBob at yahoo.com

```

• Prev by Date: How to find which variable caused the trigger in Manipulate[] ?
• Next by Date: Re: Placing images in the coordinate system?
• Previous by thread: Re: confused about == vs === in this equality
• Next by thread: Re: confused about == vs === in this equality