In APL werden Funktionen möglicherweise nicht als Argumente an Funktionen übergeben. APL hat jedoch Operatoren, die Funktionen höherer Ordnung sind, die Funktionen als Argumente annehmen können. Es gibt primitive Operatoren wie / (Reduktion), die zum Beispiel verwendet werden, um einen Vektor + / V zusammenzufassen. Die Funktion + ist der linke Operand und wird in den Bediener übergeben /.
In Dyalog APL gibt es einen primitiven Operator, der die (benannte "Power") für die Anwendung einer Funktion n -mal verwendet, damit wir schreiben können:
double←{2×⍵}
(double ⍣ 2) 7
28
(double ⍣ 10) 7
7168
Sie können auch Ihre eigenen Bediener schreiben (in den meisten APLs). In Dyalog APL können wir Ihren Antragsbetreiber als:
applytwice←{⍺⍺ ⍺⍺ ⍵}
double applytwice 7
28
Schließlich können Sie Funktionen übergeben, indem Sie sie in einen Namespace stellen und den Namespace stattdessen übergeben. Dies ist wie eine sehr leichte Klasseninstanz mit einer Methode. Zum Beispiel:
s←⎕NS ''
s.f←{2×⍵}
ApplyFTwice←{⍺.f ⍺.f ⍵}
s ApplyFTwice 7
28
In diesem Fall muss die Funktion F genannt werden, aber wir könnten viele verschiedene Funktionen mit F, jeweils in ihrem eigenen Namespace.