考虑两个列表
> plist = [(1,1),(2,2),(3,3)]
> qlist = [4, 6, 2]
比较型操作:
> all (\q -> all (\p -> fst p /= q) plist) qlist
False
在绞尽脑汁之后,我设法提出了一个并不涉及lambdas的版本( EDITED ,谢谢Willem Van Onsem):
> all (flip all plist . (. fst) . (/=)) qlist
False
然而现在我的代码运行速度慢了约30%。为什么会这样?内存配置文件看起来相同(和健康)。我想这两个应该是等价的。
另一方面,无点版本在这里是如此不透明,以至于它可能几乎不值得使用。