我正在使用Haskell编写一个程序,其中有一个由我定义类型组成的列表实例:
type Locals = [(String, Float)]
我正在试图通过接收一个字符串并更新相应的浮点值来更新这个列表,但是该字符串可能在此时不在列表中。
由于Haskell列表是不可变的,所以我决定最简单的方法是这样做(伪代码):
if a tuple containing the string exists:
delete it
add the correct data
我想知道:
a)是否有更简单的方法来完成这个任务
b)如果没有,我应该如何删除正确的元素
谢谢
Data.Map
并不总是一个好主意。Data.Map
仅在数据结构较大时才更快,而且通常关联列表更简单易用,代码更清晰。由于我们没有关于关联列表如何使用或数据长什么样的信息,因此很难下定论。 - YitzData.Map
。 :) - YitzData.List.lookup
+update (key, value) list = (key, value) : list
这个很 简单。虽然不可扩展,但很容易。 - ephemientData.Map
模块!:-P - luqui