Haskell:第二个列表元素的过滤器列表



我目前正在尝试过滤一个列表,该列表由形式(字符串,双精度(的元组组成,以查找由字符串组成的列表。如果元组不包含第二个列表的字符串,则应将其从元组列表中删除。到目前为止,我想出了这个:

test :: [ExamScore] -> String -> [ExamScore]
test a b = filter ((== b).fst) a

我目前的问题是替换由字符串列表过滤的字符串。感谢您的帮助!请放轻松,我是信息学一年级的学生,以前从未编码过。

它几乎是一样的,只是另一个使用 elem 的过滤器函数:

test a b :: [ExamScore] -> [String] -> [ExamScore]
test a b = filter ((s, _) -> elem s b) a

或者,如果您更喜欢构图风格:

test a b = filter (flip elem b . fst) a

(值得注意的是,这不是最有效的方法,因为elem O(N)列表,因此根据您的情况,您可能希望找到更好的结构来存储密钥。

最新更新