【发布时间】:2019-07-19 02:00:28
【问题描述】:
我正在学习 Applicative Functors,纯函数具有以下类型声明:
pure :: a -> f a
我知道纯函数接受任何类型的值并返回一个应用值,其中包含该值。所以如果应用实例是Maybe,pure 3 会给出Just 3。
但是,当您将 pure 应用于已在应用值内的值时会发生什么?例如。如果您执行pure Just 3 之类的操作会发生什么?
【问题讨论】:
-
如果您区分
pure Just 3和pure (Just 3),您可能会发现结果更容易理解。 -
你的意思是:
(pure (Just 3)) :: Maybe (Maybe Integer)==Just (Just 3)? -
FWIW,
Just可以被认为是一个带有签名a -> Maybe a的函数。
标签: haskell functional-programming applicative