我还在学习haskell,正在看snap网络框架。在他们的 hello world 示例中,有一个看起来像 <|>
的东西。
site :: Snap ()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "bar")
, ("echo/:echoparam", echoHandler)
] <|>
dir "static" (serveDirectory ".")
对此进行谷歌搜索非常具有挑战性,快照文档仅使用
<|>
作为名词。它是什么,它有什么作用?
最佳答案
这是 Alternative
中的一个方法模块中的类型类 Control.Applicative
在 base
包裹。
通常,这意味着您正在处理一种可能会失败并继续的计算。如果两者都是 x
和 y
输入为 m a
在哪里 m
标记我们正在谈论的这种计算
x <|> y :: m a
是“尝试”
x
的计算如果失败则“尝试”y
.此类计算实例化 Alternative
.
关于haskell - Haskell 中的 <|> 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716613/