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.





Aggiungi Commento

  Country flag

biuquote
  • Commento
  • Anteprima
Loading