Difference between revisions of "Reverse Compose"

From APL Wiki
Jump to navigation Jump to search
m (Adám Brudzewsky moved page Reverse Compose operator to Reverse Compose (operator))
m (Adám Brudzewsky moved page Reverse Compose (operator) to Reverse Compose)
(No difference)

Latest revision as of 12:37, 24 March 2020

Reverse Compose (), also known as Before, is a primitive operator closely related to Compose (), also known as After. Called dyadically with function operands f and g, it uses f monadically to pre-processes the left argument before applying g between the pre-processed left argument and the given right argument. X fg Y is thus equivalent to (f X) g Y. The operator can be defined as the dop {(⍺⍺ ) ⍵⍵ }. Reverse compose was introduced in Extended Dyalog APL, and then adopted into dzaima/APL.

Common usage

Its plain usage is to pre-process left arguments without needing one or more applications of Commute (). For example, the square of the left argument minus the right argument can be expressed as:

Try it online!


It can also be combined with Compose to create the split-compose construct. Here, we take the sign of the left argument and apply it to the absolute value of the right argument:

Try it online!

      3 ¯1 4××|¯2 ¯7 1
2 ¯7 1
APL built-ins [edit]
Primitive functions
Monadic ConjugateNegateSignumNotRollType
Dyadic AddSubtractEqual to (Xnor) ∙ Not Equal to (Xor) ∙ MinimumMaximumComparison functions
Structural ShapeReshapeTallyDepthRavelReverseRazeMixCut (K)PairReplicatePartitioned Enclose
Selection TakeDropUniqueIdentitySelect
Selector Interval IndexIndices
Computational MatchNot MatchNub SieveFormatExecute
Primitive operators Monadic EachReplicate
Dyadic Reverse Compose
Quad names
Arrays Index originMigration level
Other ZildeHigh minusFunction axis