AntonioPelleriti.it [aka z9]

I code, therefore I am

NAVIGATION - SEARCH

Espressioni Lambda e ricorsione

Una espressione lambda può essere ricorsiva. Quindi è possibile invocare la stessa funzione, assegnando l'espressione lambda ad una variabile, e naturalmente assicurandosi che ci sia sempre una condizione di uscita, per evitare che la ricorsione sia infinita.

Ecco un esempio che calcola il classico fattoriale di un numero.

Il fattoriale di un numero n è il prodotto dei numeri positivi minori o uguali a n. Per definizione, se n è = 0 il fattoriale di n è 1.

Per esempio il fattoriale di 5 è uguale a 5*4*3*2*1 = 120.

Ed ecco l'implementazione mediante una espressione lambda.

Func<int,int> fattoriale = null;
fattoriale = (n) => n==0 ? 1: n*fattoriale(n - 1);		

int result=fattoriale(5);	
Console.WriteLine(result);

L'espressione lambda è assegnata alla variabile fattoriale, ed al suo interno invoca se stessa.





Articolo IoProgrammo 203: le .NET Scripting API di Roslyn

Su IoProgrammo numero 203(Maggio/Giugno 2016), trovate un mio articolo dedicato a Roslyn ed in particolare alle Scripting API, con un esempio per  creare un piccolo esempio di REPL (Read Eval Print Loop)

Titolo di copertina:

  • SISTEMA
  • Metti un compilatore nella tua app
  • Scopriamo l'incredibile potenza delle Scripting API di .NET