从元组列表中删除元素

时间:2013-10-15 20:59:01

标签: haskell

假设我有元组列表:

[('X', 3.0), ('B', 0.0), ('N', 4.33)]

我想要一个从第二个元素为0或更低的列表中删除所有元组的函数。我的尝试:

dELS :: [(Char, Float)] ->  [(Char, Float)]
dELS x = [c | c <- x, snd x > 0.0]

但那会回来......

*** Expression     : snd x
*** Term           : x
*** Type           : [(Char,Float)]
*** Does not match : (a,b)

思想?

1 个答案:

答案 0 :(得分:5)

执行c <- x时,您使用c作为列表x中单个元素的名称,并且c表示您应该运行snd x > 0.0 { {1}}而不是x。因此,请将最后x更改为c