Salve a tutti, ho da poco iniziato a studiare CAML Light e ancora abituato al C mi sono trovato in difficoltà. Devo scrivere una funzione ricorsiva che resistuisce il valore di una lista data che si trova in posizione n. Io l'ho pensata così:
Tuttavia arrivato a questo punto non saprei come aumentare il contatore per le successiva chiamata della funzione ennesimo dove appunto l'elemento analizzato sarà in posizione 2 e non più in posizione 1. Chiedo scusa in anticipo ma sono davvero alle prime armi con questo linguaggio.
Grazie in anticipi a chiunque aiuterà.
Codice:
#let rec ennesimo (n,l)=
let contatore= 1
in
match (n,l) with
(n1,[])-> []
|(n1,x::xs) when x>0-> if x=contatore then x
else ennesimo(n1,xs)
Tuttavia arrivato a questo punto non saprei come aumentare il contatore per le successiva chiamata della funzione ennesimo dove appunto l'elemento analizzato sarà in posizione 2 e non più in posizione 1. Chiedo scusa in anticipo ma sono davvero alle prime armi con questo linguaggio.
Grazie in anticipi a chiunque aiuterà.