[英]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.