我正在尝试编写一个函数,使用已定义类型的子类型,但OCaml无法推导出正确的值:
考虑下面的类型定义:
如果我尝试在解释器中输入文字(我正在使用utop,如果有关系的话):
"type number" 也是一个整数,但我无法让函数理解这一点,我该怎么解决?
type fraction = {numerator : int; denominator : int};;
type number =
| Int of int
| Fraction of fraction;;
如果我尝试在解释器中输入文字(我正在使用utop,如果有关系的话):
utop # ((fun a-> a>0) (Int 1));;
Error: This expression has type number but an expression was expected of type int
"type number" 也是一个整数,但我无法让函数理解这一点,我该怎么解决?
number
上进行模式匹配。 - gsg