【发布时间】:2017-04-03 03:35:32
【问题描述】:
以下代码在某些情况下(例如 hosum (\x->x `mod` 3) 1000 )给我一个堆栈溢出错误,我不明白为什么。谁能给我解释一下? (我是 Haskell 的新手,如果有任何帮助,我将不胜感激 :))
hosum :: (Int -> Int) -> (Int -> Int)
hosum f = (\x -> hs f x (- x))
where hs :: (Int -> Int) -> Int -> Int -> Int
hs f 0 0 = f 0
hs f n m
| m <= n
= f m + hs f n (m+1)
| n <= m
= f n + hs f (n+1) m
| otherwise
= 0
【问题讨论】:
标签: haskell