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

Beside (), Compose or After is a primitive operator. It shares the glyph Jot (<source lang=apl inline>∘</syntaxhighlight>) with Bind. Called dyadically with function operands <source lang=apl inline>f</syntaxhighlight> and <source lang=apl inline>g</syntaxhighlight>, it uses <source lang=apl inline>g</syntaxhighlight> monadically to pre-processes the right argument before applying <source lang=apl inline>f</syntaxhighlight> to the given left argument and pre-processed right argument. Called monadically with operands <source lang=apl inline>f</syntaxhighlight> and <source lang=apl inline>g</syntaxhighlight>, it applies <source lang=apl inline>f</syntaxhighlight> to the result of applying <source lang=apl inline>g</syntaxhighlight> to the argument.

In usage, <source lang=apl inline>X f∘g Y</syntaxhighlight> is equivalent to <source lang=apl inline>X f g Y</syntaxhighlight>, and <source lang=apl inline>f∘g Y</syntaxhighlight> is equivalent to <source lang=apl inline>f g Y</syntaxhighlight>. Thus, beside can be defined as the dop <source lang=apl inline>{⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}</syntaxhighlight>.


When used monadically, <source lang=apl inline>f∘g</syntaxhighlight> behaves the same as an atop:

<source lang=apl>

     -∘÷ 2 


     ⍝ same as

¯0.5 </syntaxhighlight>

When used dyadically, <source lang=apl inline>f∘g</syntaxhighlight> forms a dyadic hook:

<source lang=apl>



     ⍝ same as

1 </syntaxhighlight>

When used monadically with Commute, <source lang=apl inline>f∘g</syntaxhighlight> forms a monadic hook: <source lang=apl>



     ⍝ same as this, because operators are left-associative, unlike functions which are right-associative


     ⍝ same as

1 </syntaxhighlight>

External links



APL built-ins [edit]
Primitive functions
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
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