Sono bloccato in un ciclo infinito in questa funzione:Bloccato in un ciclo infinito in una funzione
let rec showGoatDoorSupport(userChoice, otherGuess, aGame) =
if((userChoice != otherGuess) && (List.nth aGame otherGuess == "goat")) then otherGuess
else showGoatDoorSupport(userChoice, (Random.int 3), aGame);;
Ed ecco come sto chiamando la funzione:
showGoatDoorSupport(1, 2, ["goat"; "goat"; "car"]);
Nella prima condizione nella funzione, confronto i primi 2 parametri di input (1 e 2) se sono diversi, e se l'elemento nella lista all'indice "otherGuess" non è uguale a "goat", voglio restituire quell'altroGuess.
Altrimenti, voglio eseguire nuovamente la funzione con un numero casuale compreso tra 0 e 2 come secondo parametro di ingresso.
Il punto è continuare a provare a eseguire la funzione fino a quando il secondo parametro non è uguale al primo, e quello slot nell'elenco non è "goat", quindi restituire il numero di slot.
sembra come 'c' abitudini di programmazione –