5 syntax haskell dollar-sign operator-keyword
Websocket片段有一个声明,在这样的封闭的parens中有美元符号,
any ($ fst client)
Run Code Online (Sandbox Code Playgroud)
因为haskellers使用$sign而不是parens,为什么我们需要parens?
为什么$parens之间有符号?
我试着看看是否$是一个功能
Prelude>:t $
Run Code Online (Sandbox Code Playgroud)
但它抛出了错误, parse error on input $
Tik*_*vis 13
在Haskell中,运算符只是普通函数,其名称由符号组成,默认情况下使用中缀.您可以将它们包含在括号中,就像普通标识符一样使用它们:
?> :t (+)
(+) :: Num a => a -> a -> a
Run Code Online (Sandbox Code Playgroud)
$只是像这样的运营商.它代表功能应用程序,定义如下:
f $ x = f x
Run Code Online (Sandbox Code Playgroud)
你可以得到它的类型(+):
?> :t ($)
($) :: (a -> b) -> a -> b
Run Code Online (Sandbox Code Playgroud)
Haskell运算符也可以像普通函数一样部分应用,通过将它们包含在带有一侧参数的括号中.例如,(+ 1)与...相同\ x -> x + 1并且(1 +)相同\x -> 1 + x.
这适用于$太多,所以($ fst client)相同\ f -> f $ fst client或只是\ f -> f (fst client).您检查的代码片段是否有任何函数列表返回true给定fst client.
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |