【问题标题】:Guessing the type of fixed-point combinator猜测定点组合器的类型
【发布时间】:2016-08-30 11:51:06
【问题描述】:

我的问题与“定点组合器”有关。根据this Wikipedia page section 一个函数fix 这样

fix f = f (fix f)

是类型(或至少可以是类型)

(a -> a) -> a

谁能解释一下为什么?

【问题讨论】:

  • 你读过this question
  • 谢谢Guvante,我已经看到了,但据我了解,这与我所问的不完全一样...我想要的是一个分析性答案或指出解决问题的一般方法那种问题……
  • fix f 不是f。这是f (fix f)
  • 你说得对,对不起,我发送问题时打错了字。我更正了...

标签: haskell functional-programming fixpoint-combinators


【解决方案1】:

从定义开始

fix f = f (fix f)

因为它需要一个参数,fix 必须有一个看起来像这样的类型

fix :: x -> y

它把它的论点应用到某事上,所以事实上

fix :: (p -> q) -> r

它实际上将它的参数应用于fix f,所以

fix :: (r -> q) -> r

最终的结果其实就是这个应用的结果,所以

fix :: (r -> r) -> r

【讨论】:

    猜你喜欢
    • 2015-12-19
    • 2020-08-24
    • 2016-06-19
    • 1970-01-01
    • 2018-03-09
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多