【发布时间】:2020-01-14 12:26:21
【问题描述】:
我知道这可能是个愚蠢的问题,但由于我是 Ocaml 的新手,请给我一些关于定义具有特定类型的函数的提示。
我想定义类型为 int * int * (int -> int) -> int 的函数
所以我做了一个这样的函数。
let rec sigma a b func:int->int=
if a >= b then func(a)
else func(a) + sigma(a+1, b, func)
但是这里的 sigma 函数没有 int * int * (int->int) -> int 类型。相反,它的类型是 int->int->(int->int)->int。
我应该如何将函数 sigma 定义为 int * int * (int->int) -> int 类型?
(错误信息:
Error: This expression has type 'a * 'b * 'c
but an expression was expected of type int
【问题讨论】:
标签: ocaml