haskell - Haskell 中的 <|> 是什么?

标签 haskell haskell-snap-framework

我还在学习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包裹。

通常,这意味着您正在处理一种可能会失败并继续的计算。如果两者都是 xy输入为 m a在哪里 m标记我们正在谈论的这种计算

x <|> y :: m a

是“尝试”x 的计算如果失败则“尝试”y .此类计算实例化 Alternative .

关于haskell - Haskell 中的 <|> 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716613/

相关文章:

haskell - 学习 Haskell - 如何简化表达式?

haskell - Snap 界面 - 获取操作系统和浏览器信息

ubuntu - ubuntu 20.04 上的快照访问被拒绝

multithreading - "Holding"内存中的数据映射

haskell - 如何在生产中运行 Snap haskell webapp?

haskell - Snap Web 框架中的自定义 404

haskell - 如何使用 Supply monad 创建一个生成全局唯一名称的函数?

haskell - 代表多个失败案例但只有一个成功案例的惯用类型是什么?

testing - Haskell 测试框架 (HTF) 和多个模块中的测试定义

haskell - 如何在 GHCi 中定义数据类型