首页 > 解决方案 > ((->) r) 在实例 Applicative ((->) r) 中是什么意思?

问题描述

instance Applicative ((->) r) where

这是 Haskell 中函数的 Applicative 类型类的实现。我真的不明白((->) r)以及如何阅读它。

我认为这意味着它是一个接受一个参数并返回任何内容的函数(另一个柯里化函数,一个字符串),但我不确定,是否正确。那不是(r->)

标签: haskell

解决方案


这里,->是一个类型级别的运算符;它接受两种类型并返回一个新类型(函数类型)。在((->) r中,它是部分应用的,因此您可以将其视为一个类型级函数,它采用一种类型a并返回采用 ar并返回 an的函数的类型a

((->) r) a == (->) r a  -- function application is left-associative
           == r -> a    -- switch to infix notation

可以(r ->),除了 Haskell 不支持类型级别的部分。(而且我认为没有 GHC 扩展来启用这种支持。)

没有真正的好方法来阅读它,因为它存在于一个抽象级别,这个抽象级别没有被广泛讨论,不足以值得自然语言描述。


推荐阅读