我正在尝试过滤第一个元组值等于list of 2-tuples
的{{1}}:
0
我想要的输出:
ghci> ys
[(0,55),(1,100)]
ghci> filter (\x -> x.fst == 0) ys
<interactive>:71:27:
Couldn't match type `(Integer, Integer)' with `b0 -> c0'
Expected type: [b0 -> c0]
Actual type: [(Integer, Integer)]
In the second argument of `filter', namely `ys'
In the expression: filter (\ x -> x . fst == 0) ys
In an equation for `it': it = filter (\ x -> x . fst == 0) ys
我怎样才能做到这一点?另外,编译时错误是什么意思?
答案 0 :(得分:8)
(.)
是函数组合,你想要 。
修改:您实际上需要filter (\x -> fst x == 0) ys
filter (\x -> fst x /= 0) ys
,因为filter
提供满足谓词的值列表。
编译时错误令人抱怨,因为编译器推断x
必须是函数,因为您使用fst
编写它,但ys
不是函数列表。< / p>