相关疑难解决方法(0)

将命令转换为功能代码

我需要编写一个程序,将命令式代码转换为纯函数式.我并不担心I/O--我有一些解决方案 - 但我确实需要处理堆对象和局部变量.

我想这可以通过传递一个TheWorld带有每个函数调用的对象并返回,然后从那里进行优化,尝试从不使用它的函数中删除该参数等来完成.但是有没有一种已知的更好的方法呢?

compiler-construction functional-programming code-translation

13
推荐指数
2
解决办法
1881
查看次数

为什么计算斐波纳契数需要很长时间?

我几天前开始学习Ocaml.我试图制作一个fibonaaci数字程序:

  let rec fib a=
      if a=1||a=2 then 1 else fib(a-1)+fib(a-2);;
Run Code Online (Sandbox Code Playgroud)

这段代码不是最优的,因为我不知道如何处理异常情况.但就目前而言,如果我尝试计算fib 50或fib 100,那么计算机需要很长时间才能进行评估.我想知道为什么,因为Ocaml应该非常快,并且添加数字显然是线性时间任务.如果我将此代码粘贴到"Try Ocaml"(http://try.ocamlpro.com/)中,那么当我执行fib 50时整个网站会冻结.

对不起,如果问题的级别太低.

ocaml

3
推荐指数
1
解决办法
2899
查看次数