Elm - 函数

函数是 Elm 程序的构建块。 函数是执行特定任务的一组语句。

函数将程序组织成逻辑代码块。 一旦定义,就可以调用函数来访问代码。 这使得代码可以重用。 此外,函数使程序代码的阅读和维护变得容易。

使用函数的步骤

使用函数需要三个步骤 −

函数声明

函数声明告诉编译器函数的名称、返回类型和参数。 声明函数的语法如下 −

fn_name:data_type_of_the_parameters ->return_type

函数声明指定以下内容 −

  • fn_name - 函数名称。

  • data_type_of_the_parameters - 参数的数据类型。 这是可选的,因为函数可能有参数,也可能没有参数。

  • return_type - 函数将返回的值的数据类型。 Elm 中的函数必须始终返回一个值,因为 Elm 是一种函数式编程语言。 与其他编程语言中的函数不同,Elm 函数不使用 return 关键字返回值。

函数定义或函数实现

函数定义提供了函数的实际主体。 函数定义指定如何完成特定任务。 定义函数的语法如下所示 −

fn_name parameter1 parameter2 = statements

调用函数

必须调用函数才能执行它。 调用函数的语法如下 −

fn_name parameter1 parameter2

示例

下面的代码定义了一个函数greet。 该函数返回一个字符串"Hello"。

> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String

参数化函数

参数是一种将值传递给函数的机制。 参数的值在函数调用时传递给函数。

示例 1

以下示例定义函数fn_add。 该函数接受两个数字作为参数并返回它们的总和。 在 elm REPL 中尝试以下操作 −

> fn_add x y = x+y
<function> : number -> number -> number
> fn_add 10 20
30 : number

示例 2

下面的示例定义了一个函数 sayHello。 sayHello 函数接受并返回一个 String 值作为参数,并返回一个 String。

> sayHello name = "Hello "++ name
<function> : String -> String
> sayHello "Tutorialspoint"
"Hello Tutorialspoint" : String
>

管道运算符

为了理解管道运算符 |>,让我们考虑一个示例,其中我们有一个不同字符串的列表 ["a","b","c"] 。 现在我们需要一个字符串,它由 −

以下示例展示了如何使用String.join执行此操作

> String.join "-" ["a","b","c","d","e","f"]
"a-b-c-d-e-f" : String

使用管道运算符 |> 可以执行相同的操作。 管道运算符可用于链接多个函数调用。

> ["a","b","c","d","e","f"] |> String.join "-"
"a-b-c-d-e-f" : String
> ["a","b","c","d","e","f"] |> List.reverse |> String.join "-"
"f-e-d-c-b-a" : String

在第一个示例中,我们将列表链接到 join 方法。 在第二种情况下,相同的列表通过管道传送到反向函数,然后通过管道传送到连接。 因此,列表以反向和连接的方式显示。