Beside

From APL Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

In usage, X f∘g Y is equivalent to X f g Y, and f∘g Y is equivalent to f g Y. Thus, beside can be defined as the dop {⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}.

Examples

When used monadically, f∘g behaves the same as an atop:

      -∘÷ 2 
¯0.5
      ⍝ same as
      -(÷2)
¯0.5

When used dyadically, f∘g forms a dyadic hook:

      'oy'≡∘⌽'yo'
1
      ⍝ same as
      'oy'≡⌽'yo'
1

When used monadically with Commute, f∘g forms a monadic hook:

      ≡∘⌽⍨'UwU'
1
      ⍝ same as this, because operators are left-associative, unlike functions which are right-associative
      (≡∘⌽)⍨'UwU'
1
      ⍝ same as
      'UwU'≡⌽'UwU'
1

This is equivalent to the dyadic behaviour of Withe f⍩g.

External links

Lessons

Documentation


APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
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 axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)
Quad names Index originComparison toleranceMigration levelAtomic vector