gpt4 book ai didi

haskell - $ 在 Haskell 中意味着什么/做什么?

转载 作者:行者123 更新时间:2023-12-03 06:07:43 33 4
gpt4 key购买 nike

当您编写稍微复杂的函数时,我注意到 $ 被大量使用,但我不知道它的作用是什么?

最佳答案

$ 是中缀“应用程序”。其定义为

($) :: (a -> b) -> a -> b
f $ x = f x

-- or
($) f x = f x
-- or
($) = id

它对于避免额外的括号很有用:f (g x) == f $ g x

一个特别有用的位置是“尾随 lambda 体”,例如

forM_ [1..10] $ \i -> do
l <- readLine
replicateM_ i $ print l

相比

forM_ [1..10] (\i -> do
l <- readLine
replicateM_ i (print l)
)

或者,棘手的是,当表达“将此参数应用于任何函数”时,它有时会显示为分段

applyArg :: a -> (a -> b) -> b
applyArg x = ($ x)

>>> map ($ 10) [(+1), (+2), (+3)]
[11, 12, 13]

关于haskell - $ 在 Haskell 中意味着什么/做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19521246/

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