gpt4 book ai didi

Haskell 美元运算符应用程序

转载 作者:行者123 更新时间:2023-12-04 01:44:48 24 4
gpt4 key购买 nike

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





What does $ mean/do in Haskell?

(2 个回答)


5年前关闭。




我无法理解函数应用程序如何与 Haskell 中的柯里化(Currying)一起工作。
如果我有以下功能:

($) :: (a -> b) -> a -> b

我了解要部分应用此功能,我需要提供 (a -> b)函数( $ 的第一个参数)。

那么为什么可以先应用一个值(即反向参数)?
($ 0) :: Num a => (a -> b) -> b

我在这里想念什么?

最佳答案

($)是一个运算符。在 Haskell 中,任何运算符都可以写在左侧(如 (x $) )或右侧(如 ($ x) ):

(x $) = (\y -> x $ y) = ($) x
($ x) = (\y -> y $ x) = flip ($) x

请注意,此规则的唯一异常(exception)是 (-) ,为了方便写负数:
\x -> (x-) :: Num a => a -> a -> a  -- equivalent to \x -> (-) x
\x -> (-x) :: Num a => a -> a -- equivalent to \x -> negate x

如果你想简洁地写 (\y -> y - x) , 你可以使用 subtract :
\x -> subtract x :: Num a => a -> a -> a  -- equivalent to \x -> flip (-) x

关于Haskell 美元运算符应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14407599/

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