繁体   English   中英

在Haskell中更新列表的元组元素

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

无论如何,不​​需要任何帮助,谢谢。

addToALData.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM