Elm-list
ニレ-リスト
List、Tuples、およびRecordデータ構造を使用して、値のコレクションを保存できます。
この章では、Elmでリストを使用する方法について説明します。
リストは同種の値のコレクションです。 リスト内の値はすべて同じデータ型である必要があります。
変数を使用して値を保存する際には、次の制限を考慮してください-
- 変数は本質的にスカラーです。 つまり、宣言時には、変数は1つの値しか保持できません。 つまり、プログラムにn個の値を格納するには、n個の変数宣言が必要になります。 したがって、値のより大きなコレクションを格納する必要がある場合、変数の使用は実行できません。
- プログラム内の変数には、ランダムな順序でメモリが割り当てられるため、宣言の順序で値を取得または読み取ることが難しくなります。
構文
図
次の例は、Elmでリストを使用する方法を示しています。 elm REPLでこの例を試してください-
異なる型の値をリストに追加しようとすると、コンパイラは型の不一致エラーをスローします。 これを以下に示します。
リスト操作
次の表は、リストの一般的な操作を示しています-
Sr. No | Method | Description |
---|---|---|
1 | isEmpty : List a → Bool | checks if list is empty |
2 | reverse : List a → Bool | reverses input list |
3 | length : List a → Int | returns size of the list |
4 | maximum : List comparable → Maybe.Maybe comparable | returns maximum value |
5 | minimum : List comparable → Maybe.Maybe comparable | returns minimum value |
6 | sum : List number → number | returns sum of all elements in list |
7 | product : List number → number | checks if list is empty |
8 | sort : List comparable → List comparable | sorts list in ascending order |
9 | concat : List (List a) → List a | merges a bunch of list into one |
10 | append : List a → List a → List a | merges two lists together |
11 | range : Int → Int → List Int | returns a list of numbers from start to end |
12 | filter : (a → Bool) → List a → List a | filters list of values from input list |
13 | head : List a → Maybe.Maybe a | returns the first element from list |
14 | tail : : List a → Maybe.Maybe (List a) | returns all elements except the head |
isEmpty
リストが空の場合、この関数はtrueを返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
逆
この関数はリストを逆にします。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
長さ
この関数は、リストの長さを返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
最大
この関数は、空でないリストの最大要素を返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
最小
この関数は、空でないリストの最小要素を返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
sum
この関数は、リスト内のすべての要素の合計を返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
製品
この関数は、リスト内のすべての要素の積を返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
sort
この関数は、リスト内の最低値から最高値にソートします。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
コンカット
この関数は、リストの束を単一のリストに連結します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
追加する
この関数は、2つのリストをまとめます。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
++演算子を使用して、リストを別のリストに追加することもできます。 これは以下の例に示されています-
範囲
この関数は、すべての要素が1ずつ増加する数値のリストを作成します。 リストにあるべき最小値と最大値が関数に渡されます。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
フィルタ
この関数は、入力リストから値のセットをフィルタリングします。 テストに合格した値のみを保持します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
次の例では、入力リストからすべての偶数をフィルタリングします
head
この関数は、入力リストから最初の要素を返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
tail
この関数は、リストの最初以降のすべての要素を返します。
構文
関数の署名を確認するには、elm REPLに次のように入力します-
図
短所演算子の使用
cons演算子(::)は、リストの先頭に要素を追加します。
図
追加する新しい要素とリスト内の値のデータ型は一致する必要があります。 データ型が一致しない場合、コンパイラはエラーをスローします。
リストは不変です
リストがElmで不変かどうかを確認しましょう。 最初のリスト_myList_は、値1と連結されたときに新しいリストを作成し、_myListCopy_に返されます。 したがって、初期リストを表示する場合、その値は変更されません。