Learn You a Haskell中的一个例子是:
pure (+) <*> Just 3 <*> Just 5
他说:
所以一开始,我们有
pure (+),即Just (+)
我假设 Haskell 正在函数上使用类型推断<*>来确定pureLHS 上的函数将来自类型类的Maybe实例Applicative(基于我们在Just 5RHS 上使用的事实,并且Just是 a Maybe)。
但是,是否有过这样的情况,您想使用该pure方法将一个值转换为 Applicative Functor,但您不会立即通过该<*>函数使用它,因此 Haskell 无法确定要使用哪个pure函数利用?如果是这样,您将如何明确说明pure要使用哪个功能?
或者,是不是 Haskell 不会尝试确定哪个pure函数,直到函数的结果pure在某些上下文中使用(例如当你<*>在某个时候将它提供给函数时)