尝试在ocaml中运行max函数时出错

尝试在ocaml中运行max函数时出错,ocaml,Ocaml,所以,我试着写一个简单的函数,告诉我哪个数字最大。 当谈到最小值时,没有错误,但是对于最大值,由于某些原因,它有点不同 let pls a b = max a b let r = pls 4 5 ;; 我得到了这个错误: 错误:此表达式的类型为int,但表达式的类型应为int “a->”b这是99.9999%的问题,与您先前键入的内容有关。例如,您定义了一个max函数 当您在交互顶层中遇到奇怪的错误时,请尝试关闭顶层并从新的顶层开始 在注释中建议的每个定义之后添加“;”也会有所帮助。因为任何

所以,我试着写一个简单的函数,告诉我哪个数字最大。 当谈到最小值时,没有错误,但是对于最大值,由于某些原因,它有点不同

let pls a b = max a b
let r = pls 4 5

;;
我得到了这个错误: 错误:此表达式的类型为int,但表达式的类型应为int
“a->”b

这是99.9999%的问题,与您先前键入的内容有关。例如,您定义了一个max函数

当您在交互顶层中遇到奇怪的错误时,请尝试关闭顶层并从新的顶层开始

在注释中建议的每个定义之后添加“;”也会有所帮助。因为任何错误都会立即显示错误。单独处理每一行可以看到每一行的类型。例如,这种情况可能发生:

# let pls a b = max a b;;
val pls : ('a -> 'b) -> 'b -> 'a = <fun>
#让pls a b=max a b;;
val pls:('a->'b)->'b->'a=

这不是您期望的pls类型,应该让您调查
max
的定义。或者让您重新启动顶层。

如果您添加
在第一行的末尾?当我尝试它时,我没有得到任何错误。没有必要添加
在定义之间。代码提取本身工作良好。错误在别处。能否粘贴完整的代码示例?正如octachron所说,您当前的代码运行时没有错误。我运行ocaml,粘贴上面的代码,没有错误。请检查您是否编写了实际代码我敢打赌这是一个“重新评估缓冲区”问题。