我有些困难理解 Haskell 中 Applicative 的函数实例
例如,如果我有:
我知道你得到了结果508,我有点理解你是将
据我理解,发生的情况是您在最终结果上映射
但是,我不理解
这句话的意思是:“当涉及到(->)r时,<*>、<$>运算符如何工作?”
(->) r
是如何工作的。例如,如果我有:
(+) <$> (+3) <*> (*100) $ 5
我知道你得到了结果508,我有点理解你是将
(5+3)
和(5*100)
的结果分别应用(+)
函数,但我并没有完全理解发生了什么。我猜测表达式被括在以下位置:((+) <$> (+3)) <*> (*100)
据我理解,发生的情况是您在最终结果上映射
(+)
,然后使用<*>
运算符将该函数应用于(*100)
的最终结果。但是,我不理解
(->)r
实例的<*>
实现,也不明白为什么我不能这样写:(+3) <*> (*100)
这句话的意思是:“当涉及到(->)r时,<*>、<$>运算符如何工作?”
<$>
:(+) <$> (+3) <*> (*100) $ 5
。它的解析方式应为(((+) <$> (+3)) <*> (*100)) $ 5
。 - Daniel Wagner<$>
被吃掉了(但是<*>
没有)。我已经添加了必要的代码转义。 - Alexis King<$>
。 - Zubair