2
type form = TRUE
|FALSE
|NOT of form
let rec check x = function
TRUE -> true
|FALSE -> false
|NOT(y) -> not eval y
(*where TRUE, FALSE and NOT all custom type 'form'*)
我试图定义一个函数形式 - > BOOL,但我得到的编译错误为返回一个函数返回布尔VS返回布尔(OCaml的)
|NOT(y) -> not eval y
线。该错误消息指出
This expression type form -> bool, but an expression was expected of type bool
虽然功能“的eval”返回“BOOL”类型,什么是它不能用于返回布尔函数返回值的原因是什么?
不要忘记,功能结合到左侧,所以最好写'不(EVAL Y)':
与明确的输入参数
x
另一种形式 –