我有一個列表A,[('a', 3), ('b', 0), ('c',0)]
,並且想用('b', 13)
替換('b',0)
。 並返回新列表B,[('a', 3), ('b', 13), ('c',0)]
。我如何在Haskell中做到這一點?替換元組列表中的第二個元組值
感謝
我有一個列表A,[('a', 3), ('b', 0), ('c',0)]
,並且想用('b', 13)
替換('b',0)
。 並返回新列表B,[('a', 3), ('b', 13), ('c',0)]
。我如何在Haskell中做到這一點?替換元組列表中的第二個元組值
感謝
如果你只是想要替換的('b', 0)
所有出現的話,可以用map
:
b = map (\p -> if p == ('b', 0) then ('b', 13) else p) a
如果你想,如果第一個元素是「B」,那麼您更換第二個值可以這樣做:
map (\[email protected](f, _) -> if f == 'b' then ('b', 13) else p) l
您也可以這樣做;
set :: (Char,Int) -> [(Char,Int)] -> [(Char,Int)]
set (k,v) [] = []
set (k,v) (t:ts) | k == fst t = (k,v) : ts
| otherwise = t : set (k,v) ts
這個問題沒有顯示研究工作。請閱讀[如何提出一個好問題](http://stackoverflow.com/questions/how-to-ask)。 – crockeea