【发布时间】:2014-01-01 06:23:28
【问题描述】:
type Dictionary = [(String, String)]
dict :: Dictionary
dict = ("Deutsch", "English"):[]
insert :: Dictionary -> (String,String) -> Dictionary
insert dict entry = dict ++ [entry]
我没有找到关于列表工作方式的一件事:是否有可能用插入中添加的条目覆盖现有的字典?或者是不是必须在下一步中,总是写出被insert放出来的list?
insert [("German", "English"), ("Hallo", "hello")] ("Versuch", "try")
到目前为止,这是我能够在不丢失先前条目的情况下向新列表中添加内容的唯一方法。但是,接下来要实现的是一个搜索命令,所以我想知道我是否也必须在搜索函数中写出来。
【问题讨论】:
-
“写出来”到底是什么意思?顺便说一句,插入函数的右手边会更好
entry:dict -
如果你正在创建一个关联列表,如果你在列表的前面插入,那么你不需要删除之前的值,因为任何搜索都会找到最近添加的项目。跨度>
-
我已经尝试过使用 cons 运算符,但我的列表似乎没有关联列表?因为当我将运算符从 ++ 更改为 : 时遇到了同样的问题,所以我得到的只是一个额外的条目,而没有像 RasmusWriedtLarsen 的示例中那样重命名所有内容。 @Ingo 我的意思不是用 let dict2 等给新列表名称,而是像我在问题中写的插入命令一样写整个列表及其条目。
标签: list haskell overwrite addition