是否曾经通过主流功能语言的库尝试通过动词,副词,fork等对J风格的 super 压缩默认编程进行仿真?

如果是这样,结果如何成功?

如果不是,是否有技术上的问题使之无法实现,还是不值得这样做?

我对诸如fork之类的构造特别感兴趣,这些构造似乎并不直接与函数式编程中的基本概念相对应。

最佳答案

Camccann的讨论非常好。但是请注意,此样式现在导致两次遍历。

您可以编写一个合并遍历的组合器库。看这里:
http://squing.blogspot.com/2008/11/beautiful-folding.html

帖子提供了以下示例来编写均值:

meanF :: Fractional a => Fold a a
meanF = bothWith (/) sumF (after lengthF fromIntegral)

mean :: Fractional a => [a] -> a
mean = cfoldl' meanF

而且,Conal Eliott的后续帖子进一步概括了这一点:
http://conal.net/blog/posts/enhancing-a-zip/

他将代码从自己的帖子中提取到可用于黑客攻击的库中:
http://hackage.haskell.org/package/ZipFold

关于haskell - 是否通过主流功能语言的库模拟了J风格的副词,fork等?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3398861/

10-11 06:14