Not: Difference between revisions

Jump to navigation Jump to search
(→‎Extensions: Fix K extension (=, not ≠))
m (Text replacement - "</source>" to "</syntaxhighlight>")
Line 1: Line 1:
{{Built-in|Not|~}} is a [[monadic]] [[scalar function]] that returns the [[wikipedia:Negation|logical negation]] of a [[Boolean]] argument—that is, 0 if the argument is 1 and 1 if it is 0. In some languages, such as [[J]], it is extended so that Not <source lang=apl inline>x</source> is equivalent to <source lang=apl inline>1-x</source> while in others, such as [[K]], it is extended so that Not <source lang=apl inline>x</source> is equivalent to <source lang=apl inline>0=x</source>.
{{Built-in|Not|~}} is a [[monadic]] [[scalar function]] that returns the [[wikipedia:Negation|logical negation]] of a [[Boolean]] argument—that is, 0 if the argument is 1 and 1 if it is 0. In some languages, such as [[J]], it is extended so that Not <source lang=apl inline>x</syntaxhighlight> is equivalent to <source lang=apl inline>1-x</syntaxhighlight> while in others, such as [[K]], it is extended so that Not <source lang=apl inline>x</syntaxhighlight> is equivalent to <source lang=apl inline>0=x</syntaxhighlight>.


== Examples ==
== Examples ==
Line 6: Line 6:
       ~ 0 1 1 0 1
       ~ 0 1 1 0 1
1 0 0 1 0
1 0 0 1 0
</source>
</syntaxhighlight>
Attempting to negate a non-[[Boolean]] argument usually results in a [[DOMAIN ERROR]]. In some languages it may instead [[subtract]] the argument from one.
Attempting to negate a non-[[Boolean]] argument usually results in a [[DOMAIN ERROR]]. In some languages it may instead [[subtract]] the argument from one.
<source lang=apl>
<source lang=apl>
Line 13: Line 13:
       ~0 0.5 1
       ~0 0.5 1
       ∧
       ∧
</source>
</syntaxhighlight>


== Properties ==
== Properties ==
Line 21: Line 21:
== History ==
== History ==


[[A Programming Language]] negates arrays using an overbar symbol like <math>\overline{p}</math>, matching a convention sometimes used in mathematics. In [[APL\360]] the current symbol <source lang=apl inline>~</source> was chosen, also due to its use in mathematics. Mathematical usage has arguably diverged from APL in this respect, as the negation of a variable <math>p</math> is now more often written <math>\neg p</math> when a prefix operator is desired.
[[A Programming Language]] negates arrays using an overbar symbol like <math>\overline{p}</math>, matching a convention sometimes used in mathematics. In [[APL\360]] the current symbol <source lang=apl inline>~</syntaxhighlight> was chosen, also due to its use in mathematics. Mathematical usage has arguably diverged from APL in this respect, as the negation of a variable <math>p</math> is now more often written <math>\neg p</math> when a prefix operator is desired.


The arithmetic extension <source lang=apl inline>~x</source> {{←→}} <source lang=apl inline>1-x</source> was introduced to the array langauge family by [[J]]. For arguments in the interval <math>[0,1]</math> this extension may be seen as a probabilistic interpretation of negation.
The arithmetic extension <source lang=apl inline>~x</syntaxhighlight> {{←→}} <source lang=apl inline>1-x</syntaxhighlight> was introduced to the array langauge family by [[J]]. For arguments in the interval <math>[0,1]</math> this extension may be seen as a probabilistic interpretation of negation.


== Extensions ==
== Extensions ==
Line 32: Line 32:
| None                                || [[APL\360]], [[APL2]], [[APLX]], [[SHARP APL]], [[Dyalog APL]], [[GNU APL]], [[ngn/apl]], [[dzaima/APL]]
| None                                || [[APL\360]], [[APL2]], [[APLX]], [[SHARP APL]], [[Dyalog APL]], [[GNU APL]], [[ngn/apl]], [[dzaima/APL]]
|-
|-
| <source lang=apl inline>1-⍵</source> || [[J]], [[BQN]], [[Extended Dyalog APL]]
| <source lang=apl inline>1-⍵</syntaxhighlight> || [[J]], [[BQN]], [[Extended Dyalog APL]]
|-
|-
| <source lang=apl inline>0=⍵</source> || [[K]]
| <source lang=apl inline>0=⍵</syntaxhighlight> || [[K]]
|}
|}


Retrieved from ‘https://aplwiki.com/wiki/Not