gpt4 book ai didi

haskell - 封闭括号内的美元符号

转载 作者:行者123 更新时间:2023-12-04 16:34:02 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What does $ mean/do in Haskell?

(2 个回答)


5年前关闭。




Websocket snippet有一个声明,在这样的封闭括号内有美元符号,

any ($ fst client)

由于haskellers 使用 $签名而不是括号,为什么我们需要括号?

为什么会有 $括号之间的符号?

我试着看看 $是一个通过做的功能
Prelude>:t $

但它抛出了错误, parse error on input $

最佳答案

在 Haskell 中,运算符只是具有由符号组成的名称并默认使用中缀的普通函数。您可以像普通标识符一样使用它们,将它们括在括号中:

λ> :t (+)
(+) :: Num a => a -> a -> a
$本身就是一个操作符。它代表功能应用,定义如下:
f $ x = f x

您可以像 (+) 一样获取它的类型:
λ> :t ($)
($) :: (a -> b) -> a -> b

Haskell 运算符也可以像普通函数一样部分应用,方法是将它们用括号括起来,一侧有参数。例如, (+ 1)\ x -> x + 1 相同和 (1 +)\x -> 1 + x 相同.

这适用于 $也是,所以 ($ fst client)\ f -> f $ fst client 相同或只是 \ f -> f (fst client) .您拥有的代码片段会检查给定 fst client 的任何函数列表是否返回 true .

关于haskell - 封闭括号内的美元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29706448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com