list - Haskell:用关联列表中的给定键替换元素

我必须创建一个函数,它被赋予一个键(作为一个 String),一个值(作为一个 String)以及一个键和键的关联列表值(如 [(String, String)])。该函数旨在将键/值对添加到列表的末尾,如果键已经存在于具有关联值的列表中,则删除旧值。

我已经尝试在键和关联列表上使用 lookup,但我不确定如何处理输出 - lookup 函数的输出类型是 Maybe String,我似乎无法在其上执行列表功能(如删除元素)。有什么方法可以查看列表并删除具有给定键的任何列表元素而不知道与之关联的值?

最佳答案

您可能应该编写一个递归函数,将新的键/值对和现有列表作为参数,并循环遍历列表以生成插入了新值的新列表。对于每个列表元素,您检查键是否与您要插入的键相同。如果不同,则保留旧元素,如果相同,则添加新项目而不是旧元素。如果您到达列表的末尾而没有找到键,您只需在末尾插入新项目即可。

https://stackoverflow.com/questions/793935/

相关文章:

list - 如何找到列表列表中最长的列表?

css - 如何使用 Notepad++ 将 css long 转换为 css one line s

php - 如何在 Perl 中进行全局正则表达式匹配?

vba - VBA 中的 "Dim fso, MyFile, FileName, TextLine"

oracle - 如何使用 pl/sql 循环接受用户输入?

visual-studio - 如何显示 Win32 MessageBox?

.net - 在运行时替换 .NET 类型

oracle - 关闭 Oracle 中的索引

perl - 我如何检查一个值是否在 Perl 的列表中?

erlang - 如何获取erlang集群中的当前节点名称?