[top][index]
search for:

=== -- strict equality

x === y -- returns true or false depending on whether the expressions x and y are strictly equal.

Strictly equal expressions have the same type, so 0===0. and 0===0/1 are false; the three types involved here are ZZ, RR, and QQ.

If x and y are mutable then they are strictly equal only if they are identical (i.e., at the same address in memory). For details about why strict equality cannot depend on the contents of mutable hash tables, see hashing. On the other hand, if x and y are non-mutable, then they are strictly equal if and only if all their contents are strictly equal.

i1 : {1,2,3} === {1,2,3}

o1 = true

i2 : {1,2,3} === {2,1,3}

o2 = false

In the current implementation, matrices are mutable objects, so === will yield false more often than you might expect. We hope to change this in the future.

i3 : matrix {{2}} === matrix {{2}}

o3 = false

i4 : matrix {{2}} == matrix {{2}}

o4 = true

i5 : matrix {{2}} == matrix {{3}}

o5 = false

See also:

  • == -- equality
  • =!= -- strict inequality
  • Methods for === :

  • Thing === Thing

  • [top][index]
    search for: