Ocaml循环功能

时间:2015-01-26 06:29:22

标签: ocaml

我需要创建一个函数,它将函数f和输入b作为输入,并在b上调用f返回(b',c')b'是一些结果,c'是布尔值。只要c'为真,该函数需要继续在b'上调用f

这就是我写的:

let rec wwhile (f,b) = match f b with
| (a,c) -> if c then wwhile(f a,c) else a
;;

这个想法是我想得到f b的元组结果并检查c是否为真,但我不确定它是否使用模式匹配是实现此目的的最佳方法。此函数给我一个语法错误,我不知道为什么

下面是一个样本正确的asnwer:

# let f x = let xx = x*x*x in (xx,xx<100);;
val f : int -> int * bool = fn
# wwhile (f,2);;
- : int = 512 

找出正确的代码:

let rec wwhile (f,b) = match f b with
| (a,c) -> if c then wwhile(f ,a) else a
;;

0 个答案:

没有答案