((->)r)在实例适用((->)r)中的含义是什么?

时间:2018-12-23 14:41:01

标签: haskell

instance Applicative ((->) r) where

这是Haskell中某个函数的Applicative类型类的实现。我不太了解((->) r)和如何阅读它。

我认为这意味着它是一个带有一个参数并返回任何值的函数(另一个咖喱函数,一个String),但是我不确定那是正确的。那不是(r->)

2 个答案:

答案 0 :(得分:8)

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

a

您可以可以((->) r) a == (->) r a -- function application is left-associative == r -> a -- switch to infix notation ,只是Haskell不支持类型级部分。 (而且我不认为会存在GHC扩展来启用这种支持。)

真正没有一种好方法来读取它,因为它存在于抽象层次上,没有被充分讨论以值得自然语言描述。

答案 1 :(得分:0)