相关疑难解决方法(0)

Haskell尾递归如何工作?

我写了这段代码,我假设len是尾递归,但仍然会发生堆栈溢出.怎么了?

myLength :: [a] -> Integer

myLength xs = len xs 0
    where len [] l = l
          len (x:xs) l = len xs (l+1)

main = print $ myLength [1..10000000]
Run Code Online (Sandbox Code Playgroud)

haskell tail-recursion

48
推荐指数
2
解决办法
9282
查看次数

标签 统计

haskell ×1

tail-recursion ×1