tôi bị mắc kẹt trong một vòng lặp vô hạn trong chức năng này:Bị mắc kẹt trong một vòng lặp vô hạn trong một hàm
let rec showGoatDoorSupport(userChoice, otherGuess, aGame) =
if((userChoice != otherGuess) && (List.nth aGame otherGuess == "goat")) then otherGuess
else showGoatDoorSupport(userChoice, (Random.int 3), aGame);;
Và dưới đây là cách tôi gọi hàm:
showGoatDoorSupport(1, 2, ["goat"; "goat"; "car"]);
Trong lần đầu tiên điều kiện trong hàm, tôi so sánh 2 tham số đầu vào đầu tiên (1 và 2) nếu khác nhau, và nếu mục trong danh sách tại chỉ mục "otherGuess" không bằng "dê", tôi muốn trả lại đối tượng kia.
Nếu không, tôi muốn chạy lại hàm bằng một số ngẫu nhiên từ 0-2 làm tham số nhập thứ hai.
Vấn đề là tiếp tục cố gắng chạy hàm cho đến khi tham số thứ hai không bằng giá trị đầu tiên, và vị trí đó trong Danh sách không phải là "dê", sau đó trả về số thứ tự đó.
giống như 'c' thói quen lập trình –