estoy atascado en un bucle infinito en esta función:Atrapado en un bucle infinito en una función
let rec showGoatDoorSupport(userChoice, otherGuess, aGame) =
if((userChoice != otherGuess) && (List.nth aGame otherGuess == "goat")) then otherGuess
else showGoatDoorSupport(userChoice, (Random.int 3), aGame);;
Y así es como llamo a la función:
showGoatDoorSupport(1, 2, ["goat"; "goat"; "car"]);
En el primer Condición en la función, comparo los primeros 2 parámetros de entrada (1 y 2) si son diferentes, y si el elemento en la lista en el índice "otherGuess" no es igual a "goat", quiero devolver ese otroGuess.
De lo contrario, quiero ejecutar la función nuevamente con un número aleatorio entre 0-2 como el segundo parámetro de entrada.
El punto es seguir intentando ejecutar la función hasta que el segundo parámetro no sea igual al primero, y esa ranura en la Lista no sea "caprina", luego devuelva ese número de ranura.
parece 'hábitos de programación C ' –