4,494
edits
(→Documentation: BQN) |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
Line 1: | Line 1: | ||
{{Built-in|Equal to|<nowiki>=</nowiki>}} is a [[comparison function]] which tests whether argument elements are [[Tolerant comparison|tolerantly]] equal to each other: it returns 1 if the [[element]]s being compared [[match]] and 0 if they do not. It is the [[Not|negation]] of [[Not Equal to]] (< | {{Built-in|Equal to|<nowiki>=</nowiki>}} is a [[comparison function]] which tests whether argument elements are [[Tolerant comparison|tolerantly]] equal to each other: it returns 1 if the [[element]]s being compared [[match]] and 0 if they do not. It is the [[Not|negation]] of [[Not Equal to]] (<syntaxhighlight lang=apl inline>≠</source>). | ||
APL's < | APL's <syntaxhighlight lang=apl inline>=</source> differs from the usage of <math>=</math> in [[Comparison with traditional mathematics|traditional mathematical notation]] by having an implied [[Ken_Iverson#Iverson_bracket|Iverson bracket]]. Thus, <syntaxhighlight lang=apl inline>i=j</source> is APL is equivalent to <math>[i=j]</math> or <math>\delta_{ij}</math> ([[wikipedia:Kronecker delta|Kronecker delta]]) in mathematics. | ||
== Examples == | == Examples == | ||
Equal to compares arrays one [[element]] at a time, returning 1 when elements match and 0 when they do not. | Equal to compares arrays one [[element]] at a time, returning 1 when elements match and 0 when they do not. | ||
< | <syntaxhighlight lang=apl> | ||
3 2 1 = 1 2 3 | 3 2 1 = 1 2 3 | ||
0 1 0 | 0 1 0 | ||
Line 15: | Line 15: | ||
</source> | </source> | ||
It is subject to [[comparison tolerance]]: floating-point numbers which are very close together are considered equal, even though they are slightly different: | It is subject to [[comparison tolerance]]: floating-point numbers which are very close together are considered equal, even though they are slightly different: | ||
< | <syntaxhighlight lang=apl> | ||
⎕CT | ⎕CT | ||
1E¯14 | 1E¯14 | ||
Line 27: | Line 27: | ||
</source> | </source> | ||
In a [[Nested array model|nested]] APL, Equal to is pervasive, and compares all [[simple scalar]]s found in a [[nested array]]. | In a [[Nested array model|nested]] APL, Equal to is pervasive, and compares all [[simple scalar]]s found in a [[nested array]]. | ||
< | <syntaxhighlight lang=apl> | ||
⎕←n ← ((2 1)0)(1 0 3)(2 2⍴4 0) | ⎕←n ← ((2 1)0)(1 0 3)(2 2⍴4 0) | ||
┌───────┬─────┬───┐ | ┌───────┬─────┬───┐ | ||
Line 42: | Line 42: | ||
</source> | </source> | ||
In a [[Flat array model|flat]] array language such as [[J]], it instead compares [[Box]]es directly, since they are the [[element]]s of a boxed array. | In a [[Flat array model|flat]] array language such as [[J]], it instead compares [[Box]]es directly, since they are the [[element]]s of a boxed array. | ||
< | <syntaxhighlight lang=j> | ||
(<'string') = 'which';'is';'string';'?' | (<'string') = 'which';'is';'string';'?' | ||
0 0 1 0 | 0 0 1 0 | ||
Line 51: | Line 51: | ||
When the arguments to Equal to are [[Boolean]], it is the [[wikipedia:Logical biconditional|Logical biconditional]] function, or the [[Not|negation]] of the [[xor]] function (which is [[Not Equal to]] restricted to Boolean arguments): | When the arguments to Equal to are [[Boolean]], it is the [[wikipedia:Logical biconditional|Logical biconditional]] function, or the [[Not|negation]] of the [[xor]] function (which is [[Not Equal to]] restricted to Boolean arguments): | ||
{|class=wikitable | {|class=wikitable | ||
!< | !<syntaxhighlight lang=apl inline>=</source>!!<syntaxhighlight lang=apl inline>0</source>!!<syntaxhighlight lang=apl inline>1</source> | ||
|- | |- | ||
!< | !<syntaxhighlight lang=apl inline>0</source> | ||
|< | |<syntaxhighlight lang=apl inline>1</source>||<syntaxhighlight lang=apl inline>0</source> | ||
|- | |- | ||
!< | !<syntaxhighlight lang=apl inline>1</source> | ||
|< | |<syntaxhighlight lang=apl inline>0</source>||<syntaxhighlight lang=apl inline>1</source> | ||
|} | |} | ||
In the context of logic, it can be read as ''if and only if''. This function is also known as xnor or the Kronecker delta. | In the context of logic, it can be read as ''if and only if''. This function is also known as xnor or the Kronecker delta. | ||
[[Reduction]] with < | [[Reduction]] with <syntaxhighlight lang=apl inline>=</source> is the same as reduction with xor (<syntaxhighlight lang=apl inline>≠</source>), but [[Not|inverted]] if the number of reduced elements is even. The left and right [[identity element]] for Boolean <syntaxhighlight lang=apl inline>=</source> is 1. | ||
== External links == | == External links == |