我注意到GHC手册说"对于自递归函数,环路断路器只能是函数本身,因此INLINE编译指示总是被忽略."
这难道不是说像普通的递归功能结构的每一个应用程序map,zip,scan*,fold*,sum,等不能被内联?
map
zip
scan*
fold*
sum
您可以随时重写所有这些功能,添加适当的严格标签,或者使用像这里推荐的"流融合"这样的花哨技术.
然而,这并不是所有这些都极大地限制了我们编写同时快速和优雅的代码的能力吗?
optimization haskell inline ghc
ghc ×1
haskell ×1
inline ×1
optimization ×1