【发布时间】:2013-03-30 14:01:42
【问题描述】:
这是我使用foldr 的take 版本:
myTake n list = foldr step [] list
where step x y | (length y) < n = x : y
| otherwise = y
main = do print $ myTake 2 [1,2,3,4]
输出不是我所期望的:
[3,4]
然后我尝试通过将y 的长度插入自身来进行调试,结果是:
[3,2,1,0]
我不明白为什么要按降序插入长度。也许我错过了一些明显的东西?
【问题讨论】: