首页 > 解决方案 > 为什么odd.fst 不能与过滤器功能一起使用?

问题描述

为什么filter odd.fst [(1,2), (2,3)]给我一个编译错误?odd.fst应该接受一个整数元组并输出一个布尔值,所以我很困惑为什么编译器告诉我它不能匹配类型。

标签: haskell

解决方案


出于同样的原因,2 * 3+4不是。运算符优先级不关心间距:解析为.10142 * 3+4(2 * 3) + 4

相似地,

filter odd.fst [(1,2), (2,3)]

解析为

(filter odd) . (fst [(1,2), (2,3)])

无论你如何间隔它。这是因为函数应用比任何中缀运算符具有更高的优先级。

你要

filter (odd . fst) [(1,2), (2,3)]

反而。


推荐阅读