У меня есть следующий список:
["A";"AA";"ABC";"BCD";"B";"C"]
Я случайным образом извлекаю элемент из списка.Но элемент, который я извлекаю, должен иметь размер 3, только не меньше 3.
Я пытаюсь сделать это следующим образом:
let randomnum = (Random.int(List.length (list)));;
let rec code c =
if (String.length c) = 3 then c
else (code ((List.nth (list) (randomnum)))) ;;
print_string (code ( (List.nth (list) (randomnum)))) ;;
Это прекрасно работает, если случайным образом строка длиной 3выбран из списка.
Но программа не завершает работу, если выбрана строка длиной <3.Я пытаюсь сделать рекурсивный вызов, чтобы новый код продолжал собираться до тех пор, пока мы не получим один из кодов длины = 3. </p>
Я не могу понять, почему это не заканчивается.Ничего не выводится оператором print.