Elm-loop

提供:Dev Guides
移動先:案内検索

エルム-ループ

Elmは関数型プログラミング言語です。 Elmは、従来のループ構造の代わりに再帰の概念を使用します。

この章では、再帰の概念について説明します。

再帰

一部のコンピュータープログラミング言語では、モジュールまたは関数が自分自身を呼び出すことができます。 この手法は、再帰として知られています。

このプログラムでは、再帰を使用してhelloを5回表示する方法を説明します。

  • ステップ1-ファイルLoop.elm *を作成します

モジュールループを作成し、関数 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を作成して同じ関数を呼び出します。

ステップ2-REPLからsayHelloを呼び出す

現在のプロジェクトフォルダ(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では、入力番号を取得し、0からその番号までのすべての数値を合計する関数sumOfNosを作成しました。

たとえば、入力を5として渡すと、1 + 2 + 3 + 4 + 515)が合計されます。

> ssumOfNos 5
15 : number

プログラムの出力は上に示されています。