相关疑难解决方法(0)

Haskell中的定点组合子

根据定义,定点组合器并不总能产生正确的答案:

fix f = f (fix f)
Run Code Online (Sandbox Code Playgroud)

以下代码不会终止:

fix (\x->x*x) 0
Run Code Online (Sandbox Code Playgroud)

当然,fix不能总能产生正确的答案,但我很纳闷,这可以改进吗?

当然,对于上面的例子,可以实现一些看起来像的修复

fix f x | f x == f (f x)  = f x
        | otherwise       = fix f (f x)
Run Code Online (Sandbox Code Playgroud)

并给出正确的输出.

是什么原因导致上面的定义(或更好的东西,因为这个只有1个参数的句柄功能)不被使用?

haskell fixed-point-iteration fixpoint-combinators

12
推荐指数
3
解决办法
3644
查看次数