Ocaml Psum不累积(多态高阶函数)而不强制类型

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

作为一个整体,我不熟悉OCaml和函数式编程,因此在保持类型不明确方面遇到了一些问题。我想做一个函数,它包含一个符号AccuM,看起来像+或-。或*等和函数f。我当前的实现如下,假设我通过了**fx=3x^2+5x+6**,但我总是得到“6”而不是“276”,因为在其他部分,我没有将前几轮的结果相加,所以我只得到最后的值“6”

由于+的原因,我得到了类型错误,所以当我抛出浮点数时,它会中断。如何克服这一问题,让部分接受浮点或整数,但实际累积答案

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