Fre*_*all 10 haskell haskell-snap-framework
我还在学习haskell并查看snap web框架.在他们的hello world例子中,有一个看起来很像的东西<|>
site :: Snap ()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "bar")
, ("echo/:echoparam", echoHandler)
] <|>
dir "static" (serveDirectory ".")
Run Code Online (Sandbox Code Playgroud)
谷歌搜索这是惊人的挑战,快照文档只是<|>用作名词.它是什么,它做了什么?
它是包中Alternative模块Control.Applicative中类型类的方法base.
通常,这意味着您正在处理一种可能失败并继续的计算.如果同时x和y被分类为m a其中m标签这种计算我们谈论然后
x <|> y :: m a
Run Code Online (Sandbox Code Playgroud)
是"尝试"的计算,x如果失败则"尝试" y.这种计算实例化Alternative.