Derived function
A derived function is the result of applying an operator to its operands. Since it is a function, it can then be applied to argument arrays, resulting in other arrays.
Consider for example applying a Windowed Reduction to an array: <source lang=apl>
3 ⌈/ 2 9 0 ¯1 0 2 5
9 9 0 2 5 </syntaxhighlight> In this statement the Reduce operator (<source lang=apl inline>/</syntaxhighlight>) is applied to the Minimum function (<source lang=apl inline>⌈</syntaxhighlight>) resulting in the derived function <source lang=apl inline>⌈/</syntaxhighlight>. In most modern APLs this function can be manipulated like any other function, for example to assign it to a name: <source lang=apl>
f ← ⌈/ 3 f 2 9 0 ¯1 0 2 5
9 9 0 2 5 </syntaxhighlight> Here the value of <source lang=apl inline>f</syntaxhighlight> is a derived function. Many APLs display a derived function by placing its operands next to the operator, as it is written: <source lang=apl>
f
⌈/ </syntaxhighlight>
In APL a user-defined operator such as a tradop or dop creates a derived function from its arguments without executing any of the user's code. In J, the user's code is evaluated and must return a value, which could but doesn't have to be a derived function.