`pure x =(\ _ - > x)`是什么意思?

Bul*_* M. 1 haskell types typeclass semantics

我正在读函数的Applicative实例,并遇到了一行

instance Applicative ((->) r) where  
  pure x = (\_ -> x)  
  f <*> g = \x -> f x (g x)
Run Code Online (Sandbox Code Playgroud)

我理解语法,但不理解第二行的含义.

我的理解是:部分应用函数((->) r)获取一个值并将该值包装到上下文中,该上下文包含始终返回该值的函数.

为什么不通过将部分应用的函数应用于此来计算结果x,并且仅在此之后它将结果存储在Applicative上下文中?

M. *_*osi 8

函数实例 的签名pure(<*>)

pure :: a -> ((->) r a)  
(<*>) :: ((->) r (a -> b)) -> ((->) r a) -> ((->) r b)  
Run Code Online (Sandbox Code Playgroud)

将( - >)写为中缀运算符给出

pure :: a -> (r -> a)  
(<*>) :: (r -> (a -> b)) -> (r -> a) -> (r -> a)
Run Code Online (Sandbox Code Playgroud)

pure是一个函数,它接受一个类型的参数,a并返回一个带有类型参数的函数,r并返回一个类型的值a.
由于我们无法知道r我们编写的类型,因此我们pure只能给出一个返回给定参数的函数pure.