Elm 循环结构
Elm是一种编程语言。Elm使用递归的概念来替代传统的循环结构。
本章讨论递归的概念。
递归
其他计算机编程语言允许模块或自行,此技术称为递归。
在此程序中,我们将看到如何使用递归五次问候。
创建模块Loop并定义sayHello。sayHello将整数值作为输入并返回字符串值。
module Loop exposing(..) //function signature sayHello:Int ->String //function implementation sayHello n = case n of 1 -> "Hello:1 " _ -> "Hello:" ++ toString (n) ++ " " ++ sayHello(n-1)
sayHello检查传递的参数是否为1。如果参数为1,则将返回,否则将创建字符串Hello并同一。
从当前项目夹(Loop.elm的位置)中打开elm REPL。
//import the module Loop > import Loop exposing(..) //invoke the sayHello function with parameter value as 5 > sayHello 5 "Hello:5 Hello:4 Hello:3 Hello:2 Hello:1 Hello:0 " : String >
下面的示例使用递归打印n个数字的总和。
> sumOfNos n =\ | if n==0 then 0 \ | else (n) + sumOfNos (n-1) <function> : number -> number1
在elm REPL中,我们创建了sumOfNos,该接受并将所有从0到该数字的数字相加。
例如,如果我们将输入传递为5,则将求和1 + 2 + 3 + 4 + 5,即15。
> ssumOfNos 5 15 : number
程序的如上所示。