【发布时间】:2014-08-11 15:38:51
【问题描述】:
我在使用 foldr1 实现最后一个函数时遇到了问题。我假设它采用最右边的元素并将其视为累加器值,然后将二进制函数应用于累加器及其邻居,直到它到达给定列表的开头。但是,下面显示的代码不起作用。有人可以告诉我它有什么问题吗?它不是返回最后一个元素,而是打印出第一个元素
last' list = foldr1 (\acc _ -> acc) list
【问题讨论】:
-
你需要返回第二个参数,而不是第一个。
-
但是为什么呢?我使用的是 foldr1 而不是 foldl1
-
第二个元素是累加值——遍历的顺序改变了,参数的顺序也改变了……
-
哦,非常感谢