gpt4 book ai didi

functional-programming - 为什么有些函数式语言不为函数参数使用括号?

转载 作者:行者123 更新时间:2023-12-05 00:21:35 26 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

6年前关闭。




Improve this question




我一直在尝试在我的编程中采用一种函数式语言。我使用 C# 并严重依赖 LINQ 和其他函数式构造。目前我专注于榆树。

继续困扰我的一件事是函数中缺少括号。数学表达式使用它们:

f(z) = ln(z) + 1

然而,在许多函数式语言中,这被写为:
f z = ln z + 1

这只是一种风格,还是这里有更深层次的东西?

最佳答案

函数式语言 Root 于 lambda calculus , 在函数应用中不使用括号。

这在语法上是肯定的,但是函数的应用方式可以省略括号,因为带有两个参数的函数首先将最左边的参数应用到该函数并输出第二个参数使用的函数。例如您习惯使用的功能:

add(x,y) { return x + y } 

在功能方面是
add x y
add :: Int->Int->Int

其中应用 x 后的中间步骤返回另一个函数
add 4  -- returns a function that will return 4 + y, when y is applied
add 4 :: Int->Int

在某种程度上,这有助于避免与您习惯的编程语言混淆,其中 add(4) 会引发错误。它读起来更像是具有结合性的数学, ((add x) y) .

关于functional-programming - 为什么有些函数式语言不为函数参数使用括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278641/

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