我正在尝试解决这个练习:
假设你有一个关于整数 f 的函数:int -> int,它在从 0 到 n 的某个参数范围内单调递增。也就是说,对于任何 0 ≤ i < n,fi < f (i + 1)。此外,f 0 < 0 和 fn > 0。编写一个函数 search fn,找到 fi ≥ 0 的最小参数 i。
现在我写了这个
let search f n =
let min = f 0 in
let rec searchin i =
if i >= n then min
else
if f min > f i then min = i
searchin i+1;;
但它会因错误而崩溃:
错误:解析错误:在 [binding] 之后需要“in”(在 [expr] 中)
怎么了?我的实现是正确的吗?