Lambda

(:Fonctions lambda:) Qubes 7.1 Les fonctions Lambda permettent la déclaration de fonctions anonymes avec une syntaxe compacte et simplifiées.

Elles sont supportés en totalité quand un script et compilé à destination de JavaScript, et partiellement pour une exécution côté serveur ou applicatif, notamment elles ne supportent pas la capture de variables.

Les expression lambda sont déclarées avec le mot-clef lambda, suivi d'une liste de paramètres (pouvant bénéficier d'une inférence de type), de l'opérateur '=>' et de l'expression résultat.

DoSomething( lambda (param1, param2) => param1+param2 );

Les procédure ou fonction lambda sont aussi déclarées avec le mot-clef lambda, sans opérateur '=>' mais avec un terminateur end.

DoSomething(
   lambda (param1, param2)
      DoSomethingElse(param1);
      Result := ComputeSomething(param2);
   end );

Les fonctions lambda sont particulièrement appropriées quand de petites fonction sont requises.

var s : array of Integer = [1, 3, 2];
s.Sort(lambda (a, b) => b - a); // tri par ordre décroissant
PrintLn( s.Map(IntToStr).Join(',')); // 3,2,1