Difference between revisions of "And"

From APL Wiki
Jump to navigation Jump to search
(Move LCM to its own page; see Talk:Or)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Built-in|And|∧}} is a [[dyadic]] [[scalar function|scalar]] [[boolean function]] which tests if both arguments are true: it returns 1 if both are 1 and 0 if one or both are 0. It represents the [[wikipedia:logical conjunction|logical conjunction]] in Boolean logic.
+
{{Built-in|And|∧}} is a [[dyadic]] [[scalar function|scalar]] [[boolean function]] which tests if both arguments are true: it returns 1 if both are 1 and 0 if one or both are 0. It represents the [[wikipedia:logical conjunction|logical conjunction]] in Boolean logic. In many APLs, And is a special case of the [[LCM]] function.
  
 
{|class=wikitable
 
{|class=wikitable
Line 28: Line 28:
 
0
 
0
 
</source>
 
</source>
 
== Extended definition ==
 
 
Many APL implementations extend this function to non-Boolean arguments. In this case, this function behaves as '''[[wikipedia:Least common multiple|Least Common Multiple]]''' or '''LCM'''. For positive integer arguments, it is defined as the smallest positive number which is divisible by both numbers. If one of the arguments is zero, the LCM function returns zero. While the mathematical definition of LCM does not cover non-integers, some implementations accept them as arguments, returning a value which, when divided by both arguments, gives integers (or [[wikipedia:Gaussian integer|Gaussian integers]], when given [[complex]] numbers).
 
 
<source lang=apl>
 
      ∘.∧⍨ 0,⍳10
 
0  0  0  0  0  0  0  0  0  0  0
 
0  1  2  3  4  5  6  7  8  9 10
 
0  2  2  6  4 10  6 14  8 18 10
 
0  3  6  3 12 15  6 21 24  9 30
 
0  4  4 12  4 20 12 28  8 36 20
 
0  5 10 15 20  5 30 35 40 45 10
 
0  6  6  6 12 30  6 42 24 18 30
 
0  7 14 21 28 35 42  7 56 63 70
 
0  8  8 24  8 40 24 56  8 72 40
 
0  9 18  9 36 45 18 63 72  9 90
 
0 10 10 30 20 10 30 70 40 90 10
 
 
      0.9∧25÷6
 
112.5
 
      112.5÷0.9(25÷6)
 
125 27
 
      2J2∧3J1
 
6J2
 
      6J2÷2J2 3J1
 
2J¯1 2
 
</source>{{Works in|[[Dyalog APL]]}}
 
  
 
== External links ==
 
== External links ==
Line 62: Line 34:
  
 
* [http://help.dyalog.com/17.1/#Language/Primitive%20Functions/And%20Lowest%20Common%20Multiple.htm Dyalog]
 
* [http://help.dyalog.com/17.1/#Language/Primitive%20Functions/And%20Lowest%20Common%20Multiple.htm Dyalog]
 +
* [http://microapl.com/apl_help/ch_020_020_430.htm APLX]
 
* J [https://www.jsoftware.com/help/dictionary/d111.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/stardot#dyadic NuVoc]
 
* J [https://www.jsoftware.com/help/dictionary/d111.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/stardot#dyadic NuVoc]
 
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar dyadic functions]]
 
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar dyadic functions]]

Latest revision as of 15:09, 1 June 2020

And () is a dyadic scalar boolean function which tests if both arguments are true: it returns 1 if both are 1 and 0 if one or both are 0. It represents the logical conjunction in Boolean logic. In many APLs, And is a special case of the LCM function.

0 1
0 0 0
1 0 1

Examples

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

      0 0 1 1  0 1 0 1
0 0 0 1

When combined with Reduce, And can be used to test if every value in a Boolean vector is true.

      / 1 1 1 1 1
1
      / 1 0 0 1 1
0

External links

Documentation

APL built-ins [edit]
Primitive functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentitySelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndex
Selector Index generatorGradeIndex OfInterval IndexIndicesDeal
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialise
Primitive operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-beamSpawnFunction axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Atop, Over) ∙ Inner ProductPowerAtUnderRankDepthVariantStencil
Quad names
Arrays Index originMigration level
Functions Case convert
Operators SearchReplace