Ocaml Psum不累积(多态高阶函数)而不强制类型
作为一个整体,我不熟悉OCaml和函数式编程,因此在保持类型不明确方面遇到了一些问题。我想做一个函数,它包含一个符号AccuM,看起来像+或-。或*等和函数f。我当前的实现如下,假设我通过了**fx=3x^2+5x+6**,但我总是得到“6”而不是“276”,因为在其他部分,我没有将前几轮的结果相加,所以我只得到最后的值“6” 由于+的原因,我得到了类型错误,所以当我抛出浮点数时,它会中断。如何克服这一问题,让部分接受浮点或整数,但实际累积答案Ocaml Psum不累积(多态高阶函数)而不强制类型,ocaml,Ocaml,作为一个整体,我不熟悉OCaml和函数式编程,因此在保持类型不明确方面遇到了一些问题。我想做一个函数,它包含一个符号AccuM,看起来像+或-。或*等和函数f。我当前的实现如下,假设我通过了**fx=3x^2+5x+6**,但我总是得到“6”而不是“276”,因为在其他部分,我没有将前几轮的结果相加,所以我只得到最后的值“6” 由于+的原因,我得到了类型错误,所以当我抛出浮点数时,它会中断。如何克服这一问题,让部分接受浮点或整数,但实际累积答案 let rec powerSum(sign )(f
let rec powerSum(sign )(f):'a =
fun x ->
if x = 0 then
f (x)
else if x < 0 then
raise(Failure "Error arg isn't '+'")
else
powerSum sign f (x-1);
提示:您应该在某个时候使用accum