【发布时间】:2018-03-26 12:51:21
【问题描述】:
您好,我正在尝试通过创建以下方法来了解累加器的工作原理:
它接收一个数字并创建一个元组:(sum [0..nr], [0..nr])。例如,给定4,它应该返回(10, [0,1,2,3,4])。
这是我的代码:
accu :: Int -> (Int, [Int])
accu 0 = (0, [0])
accu nr = go (0, []) nr where --I do not get this line, mainly the first argument
go (s,ls) 0 = (s, 0:ls)
go (s,ls) nr = go (s+nr, nr:ls) (nr-1)
我不明白累加器如何改变它的值,因为它不是一个函数,因此它不应该是不可变的吗?在我的情况下,它不应该是一个常数吗?
【问题讨论】:
标签: haskell