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
另一種形式 –