【发布时间】:2016-09-18 20:55:40
【问题描述】:
在 Haskell 中,这是一个简单(朴素)的不动点定义
fix :: (a -> a) -> a
fix f = f (fix f)
但是,这是 Haskell 实际实现它的方式(更高效)
fix f = let x = f x in x
我的问题是为什么第二个比第一个更有效?
【问题讨论】:
-
你认为一个比另一个更有效的依据是什么 - 你能提供一些证据
-
嗯,一方面,它似乎运行得更快。另外,请参阅此处h2.jaguarpaw.co.uk/posts/polymorphic-recursion-combinator
标签: haskell fixpoint-combinators