MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SYNOPSIS |
| 2 | closure lambda(mixed *arr, mixed); |
| 3 | |
| 4 | BESCHREIBUNG |
| 5 | Erzeugt eine Lambda Closure, entsprechend den Lamda Closures in LISP. |
| 6 | Die Closure ist an das Objekt gebunden, das sie erzeugt hat, und kann |
| 7 | deshalb Verweise auf globale Variablen enthalten. |
| 8 | |
| 9 | Das erste Argument ist ein Array, das die Argumente (Symbole) |
| 10 | beschreibt, die der Closure bei ihrer Auswertung durch funcall() |
| 11 | oder apply() uebergeben werden. |
| 12 | |
| 13 | Von der Verwendung wird aus Lesbarkeits- und Wartungsgruenden dringend |
| 14 | abgeraten. |
| 15 | |
| 16 | BEISPIEL |
| 17 | // Lambdas werden gern eingesetzt, um komplexere Filter zu schreiben |
| 18 | // Allerdings kann jede Lambda dabei auch durch eine Inline-Closure |
| 19 | // oder eine LFun-Closure ersetzt werden. |
| 20 | filter(users(), |
| 21 | lambda(({'x}), |
| 22 | ({#'==, |
| 23 | ({#'call_other,'x,"QueryProp",P_SECOND}),"gloinson" |
| 24 | }))); |
| 25 | |
| 26 | SIEHE AUCH |
| 27 | Verwandt: unbound_lambda(E), apply(E), funcall(E), bind_lambda(E) |
| 28 | Generell: closures-abstract(LPC), closures(LPC) |