【发布时间】:2014-11-09 06:14:53
【问题描述】:
如何最好地映射列表的所有元素,除了最后一个列表元素?
假设我们有一个列表 let l = [1,2,3,4] 并想要获得 [2,3,4,4]。
我确实有一个解决方案,但感觉不像是“功能性”的方法(在 ghci 中):
let l = [1,2,3,4]
let len = toIntegral $ length l -- to avoid a type mismatch Integer <-> Int
let l1 = zip l [1..]
let l2 = map (\(x,y) -> if y < len then (x + 1,y) else (x,y)) l1
let l3 = map (fst) l2
不是很好...我希望有更好的方法!由于我是函数式编程的新手,但我不知道从哪里开始寻找它。
【问题讨论】:
标签: list haskell functional-programming map-function