相关疑难解决方法(0)

如何在Haskell(GHC)中实现列表?

我只是好奇Haskell中列表的一些确切的实现细节(GHC特定的答案很好) - 他们是天真的链接列表,还是他们有任何特殊的优化?进一步来说:

  1. 做length和(!!)(例如)必须遍历列表?
  2. 如果是这样,他们的值是否以任何方式缓存(即,如果我调用length两次,它是否必须迭代两次)?
  3. 访问列表后面是否涉及遍历整个列表?
  4. 是否记住了无限列表和列表推导?(即,for fib = 1:1:zipWith (+) fib (tail fib),是否会递归计算每个值,还是依赖于先前的计算值?)

任何其他有趣的实施细节将不胜感激.提前致谢!

haskell linked-list ghc

41
推荐指数
3
解决办法
8169
查看次数

Fibonacci Haskell实现的问题

刚刚开始重新学习Haskell(在大学做过,但忘了大部分)并且认为我会实现一个斐波那契函数来开始.但是,我不断得到一个stackoverflow,即使是非常小的n.

有人能发现我的功能有什么问题吗?

fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n+1)
Run Code Online (Sandbox Code Playgroud)

stack-overflow haskell fibonacci

0
推荐指数
1
解决办法
394
查看次数

标签 统计

haskell ×2

fibonacci ×1

ghc ×1

linked-list ×1

stack-overflow ×1