我有以下列表:滤芯 - ocaml的
["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.
我无法弄清楚为什么这不会终止。打印语句没有任何输出。
谢谢。我刚刚尝试过,并即将删除此帖子,并看到您的回复:)再次感谢。 – JJunior 2010-11-29 05:18:50