[英]Updating tuple elements of a list in Haskell
我在Haskell中編寫的程序有一個我定義類型的列表實例:
type Locals = [(String, Float)]
我試圖通過接收字符串並更新相應的浮點值來更新此列表,但String可能不在列表中。
由於Haskell列表是不可變的,我決定最簡單的方法是執行此操作(在偽代碼中):
if a tuple containing the string exists:
delete it
add the correct data
我想知道:
a)如果有更簡單的方法可以做到這一點
b)如果沒有,我將如何刪除正確的元素
謝謝
這看起來像一個關聯地圖。 我會使用Data.Map
。 這在其他語言中被稱為“字典”。 Map.insert
您的需求。
似乎最好的方法是做到這一點
filter (\x -> fst x /= s) xs
無論如何,不需要任何幫助,謝謝。
addToAL
的Data.List.Utils
做你想要的。
將指定的(鍵,值)對添加到給定列表,刪除任何已存在的具有相同鍵的現有對。
我是Haskell的新手。 純娛樂。
func xs str value = (str, value) : foldr step [] xs where
step x acc
| fst x == str = acc
| otherwise = x:acc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.