我已经定义了一个值列表:data : int list
和一个函数f: int -> unit
,以及一段代码:
for i = 0 to (List.length data) - 1 do
let d = List.nth data i in
f d
done
现在,我想为f
. 例如,如果f d
超过一定时间maximal
,则f d
停止执行,继续执行下一个元素data
。
有谁知道该怎么做?
更新1:
在评论之后,我想补充一点,对f
大部分元素的应用data
最终会引发异常。这是正常的并被接受。所以代码看起来像:
List.iter
(fun d ->
try
(f d)
with
| e ->
printf "%s\n" (Printexc.to_string e))
data