Pair

From APL Wiki
Revision as of 22:09, 10 September 2022 by Adám Brudzewsky (talk | contribs) (Text replacement - "</source>" to "</syntaxhighlight>")
Jump to navigation Jump to search

Pair () or Juxtapose is a primitive function equivalent to the dfn <source lang=apl inline>{⍺←,⊂ ⋄ ⍺ ⍵}</syntaxhighlight> which aids in constructing nested arrays during tacit programming where stranding by juxtaposition is not available. It is also equivalent to the catenation of the enclosed arguments; <source lang=apl inline>,⍥⊂</syntaxhighlight> using the Over operator[1] or <source lang=apl inline>,⍨∘⊂⍨∘⊂</syntaxhighlight> using only the traditional operators Commute and Compose. It was introduced in Extended Dyalog APL, and then adopted into dzaima/APL.

Common usage

Its plain usage is in pairing up two parallel values:

Try it online! <source lang=apl>

     6 7 8(+⍮-)3

┌───────┬─────┐ │9 10 11│3 4 5│ └───────┴─────┘ </syntaxhighlight>

It can also be combined with Mix to increase rank rather than depth:

Try it online! <source lang=apl>

     6 7 8(+↑⍤⍮-)3

9 10 11 3 4 5 </syntaxhighlight>

See also

References

  1. "Composition and Enclosure" § Composition Operators. SATN-41, 1981-06-20.
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 DivideFormatExecuteMaterialiseRange
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