Nand

From APL Wiki
Jump to navigation Jump to search

Nand () is a dyadic scalar boolean function which tests if either argument is not true: it returns 0 if both are 1 and 1 if at least one is 0. It represents the Sheffer stroke or alternative denial in Boolean logic. Nand is the boolean negation ~ of the And function , and so its glyph is composed from those. However, fonts vary in how they compose them; some overlaying the glyphs (∧̴), and some stacking them (∧̃).

0 1
0 1 1
1 1 0

Examples

The following shows all possible combinations of inputs as a Boolean function.

      0 0 1 1 ⍲ 0 1 0 1
1 1 1 0

History

Nand and Nor were added to APL\360 between its original implementation in 1966 and public release in 1968, most likely in 1967. Peter Calingaert suggested them so that all nontrivial dyadic Boolean functions (those that depend on both arguments) would be represented as primitives. This proposal was quickly accepted, although an initial choice to overstrike minus with logical symbols for the glyphs was changed to use tilde instead due to their poor appearance with the type ball's font.[1]

External links

Documentation

References

  1. Eugene McDonnell. Recreational APL: The Caret and the Stick Functions. APL Quote-Quad Volume 8, Number 4. 1978-06.
APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare RootRound
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentityStopSelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndexCartesian ProductSort
Selector Index generatorGradeIndex OfInterval IndexIndicesDealPrefix and suffix vectors
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRangeCount In
Operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-BeamSpawnFunction axisIdentity (Null, Ident)
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)Identity (Lev, Dex)
Quad names Index originComparison toleranceMigration levelAtomic vector