最後のリスト要素を除いて、リストのすべての要素をどのようにマッピングするのが最善ですか?
リストが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
あまり良くありません...もっと良い方法があることを願っています! 私は関数型プログラミングの初心者なので、どこから探し始めればよいかわかりません。