【发布时间】:2019-07-21 19:37:19
【问题描述】:
Windows 10 上的 ocaml 4.01.0+ocp1
刚接触 ocaml,我在 toploop 中遇到了一个有趣的行为:
let rec fibo n = function
0 -> 1
| 1 -> 1
| _ -> fibo (n - 1) + fibo (n - 2);;
抛出:
错误:此表达式的类型为 int -> int 但是需要一个 int 类型的表达式
同时,
let rec fibo n =
match n with
0 -> 1
| 1 -> 1
| _ -> fibo (n - 1) + fibo (n - 2);;
工作正常:
斐波那契 12;;
- : int = 233
这些声明不应该是等价的吗,我错过了什么?
【问题讨论】:
标签: ocaml