在函数名之后指定的任何值或函数将自动与函数关联,因为它实际上就是它的全部含义.
在语言中,如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)