Difference between revisions of "Pair"

From APL Wiki
Jump to navigation Jump to search
(Created page with "{{Built-in|Pair|⍮}} is a primitive function equivalent to the dfn <source lang=apl inline>{⍺←,⊂ ⋄ ⍺ ⍵}</source> which aids in constructing nested arrays...")
 
(Reference for catenate over enclose in 1981)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Built-in|Pair|⍮}} is a [[primitive function]] equivalent to the [[dfn]] <source lang=apl inline>{⍺←,⊂ ⋄ ⍺ ⍵}</source> which aids in constructing nested arrays during [[tacit programming]] where [[stranding]] by juxtaposition is not available. It is also equivalent to <source lang=apl inline>,⍥⊂</source> using the [[Over operator]] or <source lang=apl inline>,⍨∘⊂⍨∘⊂</source> using only traditional operators. It was introduced in [[Extended Dyalog APL]], and then adopted into [[dzaima/APL]].
+
{{Built-in|Pair|⍮}} or '''Juxtapose''' is a [[primitive function]] equivalent to the [[dfn]] <source lang=apl inline>{⍺←,⊂ ⋄ ⍺ ⍵}</source> which aids in constructing nested arrays during [[tacit programming]] where [[stranding]] by juxtaposition is not available. It is also equivalent to the [[catenate|catenation]] of the [[enclose]]d arguments; <source lang=apl inline>,⍥⊂</source> using the [[Over]] [[operator]]<ref>[https://www.jsoftware.com/papers/satn41.htm "Composition and Enclosure"] §
 +
Composition Operators. SATN-41, 1981-06-20.</ref> or <source lang=apl inline>,⍨∘⊂⍨∘⊂</source> using only the traditional operators [[Commute]] and [[Compose]]. It was introduced in [[Extended Dyalog APL]], and then adopted into [[dzaima/APL]].
  
 
== Common usage ==
 
== Common usage ==
Line 13: Line 14:
 
{{Works in|[[dzaima/APL]], [[Extended Dyalog APL]]}}
 
{{Works in|[[dzaima/APL]], [[Extended Dyalog APL]]}}
  
It can also be combined with [[Mix]] to increase rank rather than depth:
+
It can also be combined with [[Mix]] to increase [[rank]] rather than [[depth]]:
  
 
[https://tio.run/##SyzI0U2pSszMTfz//1Hf1EdtE8wUzBUsNLQftU181LvkUe86XU3j//8B Try it online!]
 
[https://tio.run/##SyzI0U2pSszMTfz//1Hf1EdtE8wUzBUsNLQftU181LvkUe86XU3j//8B Try it online!]
Line 23: Line 24:
 
{{Works in|[[dzaima/APL]], [[Extended Dyalog APL]]}}
 
{{Works in|[[dzaima/APL]], [[Extended Dyalog APL]]}}
  
{{APL built-ins}}
+
== See also ==
 +
* [[Link]]
 +
 
 +
== References ==
 +
<references />
 +
{{APL built-ins}}[[Category:Primitive functions]]

Latest revision as of 11:51, 24 May 2022

Pair () or Juxtapose is a primitive function equivalent to the dfn {,⊂ } 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; , using the Over operator[1] or ,⍨∘⍨∘ 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!

      6 7 8(+-)3
┌───────┬─────┐
9 10 113 4 5
└───────┴─────┘

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

Try it online!

      6 7 8(+↑-)3
9 10 11
3  4  5

See also

References

  1. "Composition and Enclosure" § Composition Operators. SATN-41, 1981-06-20.
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 DivideFormatExecuteMaterialiseRange
Primitive operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-beamSpawnFunction axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductPowerAtUnderRankDepthVariantStencilCut (J)
Quad names
Arrays Index originMigration levelAtomic vector
Functions Name classCase convertUnicode convert
Operators SearchReplace