【发布时间】:2017-12-23 17:39:52
【问题描述】:
dropnth' :: [a] -> Int -> [a]
dropnth' xs n = foldl (\a b -> if (last a) == xs!!n then a else b ++ []) [head xs] xs
我试图使用 foldl 解决这个“删除列表的每个第 n 个元素”的问题,但我遇到了一个错误。我该怎么做?
错误:
【问题讨论】:
-
“我遇到错误”不是很有帮助,请在您的帖子中发布完整的错误消息,而不是图片。
-
尽可能避免
head,tail,!!总是更好,因为这些是危险的部分。 -
你真的不应该为此使用
foldl。保证你得到的代码效率低于应有的效率和懒惰。foldr你可以做得更好,但你必须要聪明一点。
标签: haskell higher-order-functions fold