gpt4 book ai didi

haskell - 在 Haskell 中使用带变量的反斜杠

转载 作者:行者123 更新时间:2023-12-05 08:23:57 24 4
gpt4 key购买 nike

我正在学习 haskell 并找到了这个函数。我知道用反斜杠您可以创建 lambda 函数。

-- >(\x -> (fst x)* (snd x)) (2,3)
-- 6

我不明白的是这里使用反斜杠。有人可以解释一下吗。

 voltea::(a -> b -> c) -> b->a->c
voltea = \f -> \x -> \y -> f y x
main = print(voltea div 2 6)

最佳答案

记住,这个

f = \x -> <thing>

和这个一样

f x = <thing>

鉴于此,如果我给出括号,您的表达可能对您来说更有意义

voltea = (\f -> (\x -> (\y -> f y x)))

相同
voltea f = (\x -> (\y -> f y x))

相同
voltea f x = \y -> f y x

相同
voltea f x y = f y x

现在,请记住,在 Haskell 中,函数只是可以传递给其他函数的常规对象,您应该能够理解最后一行的作用。

关于haskell - 在 Haskell 中使用带变量的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26988232/

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