Over (⍥) is a primitivedyadic operator which takes two functionoperands and produces a derived function which pre-processes the argument(s) using the monadic right operand, before applying the left operand on/between the result(s).
When the resulting function is used monadically, it has the same behaviour as if the Beside or Atop operator had been used:
(g ⍥ h) ⍵
g (h ⍵)
When the resulting function is used dyadically, both arguments are pre-processed:
⍺ (g ⍥ h) ⍵
(h ⍺) g (h ⍵)
Examples
x←3 1 2
y←4 6 5
x +⍥(⌈/) y ⍝ add the max of x and max of y
9
⍝ same as
(⌈/x)+⌈/y
9
Close composition
In SHARP APL and J, Over is implemented as a close composition, meaning that (using SHARP syntax) f⍤g has the overall function rank of g. J uses & for the close form and &: for the rankless form that appears in modern APLs.