Iterazioni in Ocaml

Nel linguaggio Ocaml le iterazioni si realizzano con la ricorsione. Non ci sono istruzioni specifiche per elaborare dei cicli e strutture condizionali while o for.

Come creare un ciclo con la ricorsione

Per sviluppare un ciclo definisco una funzione con almeno due parametri in ingresso che richiama se stessa ricorsivamente.

La ricorsione continua fin quando si verifica una condizione di uscita.

Esempio

Con questa funzione realizzo un algoritmo per ripetere n volte una stringa.

  1. let rec ciclo (n, stringa) =
  2. match n with
  3. 1 -> stringa
  4. | _ -> stringa^ciclo(n-1,stringa);;
  5. print_string(ciclo(5,"*"));;

Si tratta di una funzione ricorsiva.

Il funzionamento e il risultato finale è però identico a una struttura ciclica while.

ciclo(5,"*");;

Il risultato in output è

- : string = "*****"

A ogni ricorsione lo script richiama se stessa riducendo il valore della variabile n.

Quando la variabile n è uguale a uno, la ricorsione termina e il ciclo finisce.

Pertanto, n=1 è la condizione di uscita dal ciclo / ricorsione.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Ocaml