无点代码很好。我的为什么慢? (性能)

时间:2017-07-25 03:02:15

标签: performance haskell functional-programming pointfree

考虑两个列表

> 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%。为什么会这样?内存配置文件看起来相同(和健康)。我想这两个应该是等价的。

另一方面,无点版本在这里是如此不透明,以至于它可能几乎不值得使用。

0 个答案:

没有答案