为什么榆树不使用括号?

sta*_*lei 2 elm

学习榆树,但没有得到作者的意思如下:

我们可以避免编写括号的原因是因为函数应用程序关联到左侧.

hal*_*bra 8

在函数名之后指定的任何值或函数将自动与函数关联,因为它实际上就是它的全部含义.

在语言中,如JavaScript,您可以明确区分函数的用法,作为表达式:

function foo (message) {
  return message
}

console.log(foo)          // Function as expression.

console.log(foo('Hello')) // Function application with result: "Hello"
Run Code Online (Sandbox Code Playgroud)

在Elm中,这种行为不需要肠胃外给药.

foo message =
  message

foo         -- Function as expression.

foo "Hello" -- Function application with result: "Hello"
Run Code Online (Sandbox Code Playgroud)

当你想要应用函数并对结果做一些事情时,它根本不像在JavaScript中.在这里,您必须明确地告诉编译器,这(foo "Hello")是一个参数String.toUpper

String.toUpper (foo "Hello") -- "HELLO"
Run Code Online (Sandbox Code Playgroud)