【发布时间】:2014-05-13 05:59:52
【问题描述】:
我几天前开始学习 Ocaml。我试图制作一个斐波那契数的程序:
let rec fib a=
if a=1||a=2 then 1 else fib(a-1)+fib(a-2);;
这段代码不是最优的,因为我不知道如何处理异常情况。但是现在,如果我尝试计算 fib 50 或 fib 100,那么计算机需要很长时间来评估。我想知道为什么,因为 Ocaml 应该非常快,而将数字相加显然是一个线性时间任务。如果我将此代码粘贴到“Try Ocaml”(http://try.ocamlpro.com/)中,那么当我执行 fib 50 时,整个网站都会冻结。
如果问题的级别太低,请见谅。
【问题讨论】:
-
我认为这是一个算法问题而不是 ocaml 问题
-
“整个网站冻结”:大声笑:D
标签: ocaml