我需要创建一个函数,它将函数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
;;