我有以下列表:
["A";"AA";"ABC";"BCD";"B";"C"]
Run Code Online (Sandbox Code Playgroud)
我从列表中随机提取一个元素.但是我提取的元素应该只有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)))) ;;
Run Code Online (Sandbox Code Playgroud)
如果从列表中随机挑选一个长度为3的字符串,这可以正常工作.
但是如果拾取长度<3的字符串,则程序不会终止.我正在尝试进行递归调用,以便新代码不断被提取,直到我们得到一个length = 3.
我无法弄清楚为什么这不会终止.print语句没有输出任何内容.