# Reverse Compose

Reverse Compose (), also known as Before, is a primitive operator closely related to Beside (), 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. Its dyadic case matches I's Hook (h), which is a reflected form of a J Hook, while Backhook (H) matches the ordinary Hook or Compose: because I's precedence order is left to right, it considers the "reversed" APL form to be primary. The monadic case was discussed for a while in the APL Orchard.[1] To be completely consistent with the other function composition, the left "leg" would be removed, making fg Y be equivalent to g Y. However, this would never apply f and would questionably be called a composition of f and g. Instead, it was concluded that the best solution would be to have fg Y be a hook, fgY, that is, fg ${\displaystyle \Leftrightarrow }$ fg⍨⍨ ${\displaystyle \Leftrightarrow }$ g⍨∘f.

## 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!

3×⍨⍛-2
7

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

Try it online!

3 ¯1 4××|¯2 ¯7 1
2 ¯7 1

## References

1. Adám Brudzewsky. Message 60006135ff. APL Orchard. 29 Dec 2021.
APL built-ins 
Primitive functions
Scalar