最佳答案
浏览 Haskell 的文档对我来说总是有点痛苦,因为所有关于函数的信息通常都只是: f a -> f [a]
,它可能意味着很多东西。
与 <|>
函数的情况一样。
我得到的只有这个: (<|>) :: f a -> f a -> f a
和它是 「联系二元运算」..。
通过对 Control.Applicative
的检查,我了解到它根据实现做一些看似无关的事情。
instance Alternative Maybe where
empty = Nothing
Nothing <|> r = r
l <|> _ = l
好的,如果没有左边,它就返回右边,否则它就返回左边,明白了。.这使我相信它是一个“左或右”操作符,考虑到它使用 |
和 |
作为“ OR”的历史用法,这有点意义
instance Alternative [] where
empty = []
(<|>) = (++)
除了这里,它只调用名单的连接接线员... 打破我的想法..。
那么这个函数到底是什么? 它的用途是什么? 它在事物的大格局中处于什么位置?