是否可以在Haskell中的库中编写自己的流融合?

时间:2014-04-02 14:49:19

标签: haskell

我一直在尝试使用Vector库来查看流融合,这是一个非常令人印象深刻的优化。我很想知道创建自己的流融合库有多难?我只是想知道我是否需要做一些特殊事情,比如使用特定的pragma等。

1 个答案:

答案 0 :(得分:0)

Fusion主要由您的编译器优化器在INLINE / INLINABLE和RULES编译指示的控制下完成。

(Hugs仍然保持着?我假设没有。)

Haskell并没有为这些pragma赋予任何特殊含义;但是Haskell编译器(GHCJHC)都有,而且含义非常相似。

所以,从理论上讲,没有。 Haskell语言不足以指示何时应该发生融合。但是,在实践中,是的。使用INLINE / INLINABLE和RULES编译指示将导致两个活动的Haskell编译器在优化期间执行融合。