繁体   English   中英

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

[英]Haskell : Filter list for elements of second list

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

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) ,所以根据您的情况,您可能希望找到一种更好的结构来存储键。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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