为什么榆树不使用括号?

时间:2016-11-29 19:33:48

标签: elm

学习elm,但不能通过以下方式获得作者的意思:

  

我们可以避免编写括号的原因是因为函数   申请人员在左边。

2 个答案:

答案 0 :(得分:8)

在函数名称之后指定的任何值或函数将自动与函数相关联,这实际上就是它的全部意义。

在JavaScript中,您可以像JavaScript一样明确区分函数的用法:

function foo (message) {
  return message
}

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

console.log(foo('Hello')) // Function application with result: "Hello"

在Elm中,这种行为不需要进行肠胃外检查。

foo message =
  message

foo         -- Function as expression.

foo "Hello" -- Function application with result: "Hello"

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

String.toUpper (foo "Hello") -- "HELLO"

答案 1 :(得分:2)

有问题的括号是((divide 5) 2)。我对该句子的解释是,您可以将((divide 5) 2)写为divide 5 2,因为divide 5 2首先从左侧开始评估,即divide 5 -> divide5然后divide5 2 -> 2.5

虽然我看不出它是如何被评估的! 5 2divide 2然后divide2 5都没有意义。