我正在查看pipes库的源代码,在Core module中举例,我不明白作者为什么总是使用以下定义函数的模式:
runEffect = go
where
go p = ...
或者:
pull = go
where
go a' = ...
或者:
reflect = go
where
go p = ...
这是一种启用某些优化的技巧吗?如果是出于优化目的,我觉得这很丑陋,但如果编译器可以在不使用这种技巧的情况下实现优化就好了。但也许还有其他原因?
runEffect = \p -> ...
并获得相同的性能特征?我认为这看起来会少得多。 - Emmanuel Touzery