🎃
リストを操作する関数一覧(Haskell)
この記事ではリストを操作する関数をまとめました。以下の3つのグループに分けて書いています。
1、出力系の関数(4つ)
2、操作系の便利な関数(8つ)
3、無限系にまつわる関数(3つ)
1、出力系の関数(4つ)
リストにある要素を出力にかけるための基本的な関数です。
関数名 | 機能 |
---|---|
head | 先頭の要素を出力 |
tail | 先頭以外の要素を出力 |
init | 最後の要素以外を出力 |
last | 最後の要素を出力 |
head関数
リストの先頭の要素を出力します。
Prelude> head [1,2,3,4,5]
1
tail関数
リストの先頭以外の要素を出力します。
Prelude> tail [1,2,3,4,5]
[2,3,4,5]
init関数
リストの最後の要素以外を出力します。
Prelude> init [1,2,3,4,5]
[1,2,3,4]
last関数
リストの最後の要素を出力します。
Prelude> last [1,2,3,4,5]
5
2、操作系の便利な関数(8つ)
値を出力するだけでなく、色々な操作・加工ができる関数です。
関数名 | 機能 |
---|---|
length | リストの長さを出力 |
take | 先頭から指定された要素数分を出力 |
drop | 先頭から指定された要素数分を削除 |
reverse | リストの要素を逆順に |
maximum | 最大値を出力 |
sum | リストの合計の値を出力 |
elem | 要素に含まれるかを調べる |
null | 空かどうかを調べる |
length関数
リストの長さを出力します。
Prelude> length [1,2,3,4,5]
5
take関数
先頭から指定された要素数分を出力します。
Prelude> take 3 [1,2,3,4,5]
[1,2,3]
drop関数
先頭から指定された要素数分を削除し、リストを返却します。
Prelude> drop 3 [1,2,3,4,5]
[4,5]
reverse関数
リストの要素を逆順にします。
Prelude> reverse [1,2,3,4,5]
[5,4,3,2,1]
maximum関数
リストの中から最大値を出力します。
Prelude> maximum [1,2,3,4,5]
5
sum関数
リストの合計の値を出力します。
Prelude> sum [1,2,3,4,5]
15
elem関数
指定された数がリストの含まれるか調べます。あった場合はTrue、なかった場合はFalseを返却します。
Prelude> elem 3 [1,2,3,4,5]
True
null関数
リストが空かどうかを調べます。あった場合はTrue、なかった場合はFalseを返却します。
Prelude> null [1,2,3,4,5]
False
3、無限系にまつわる関数(3つ)
Haskellは遅延評価という機能を持っており、無限の長さのリストを作ることも可能です。その中から無限系にまつわる関数をまとめています。
関数名 | 機能 |
---|---|
cycle | リストを無限に繰り返す |
repeat | 要素を1つ無限に繰り返す |
replicate | repeatの有限版 |
cycle関数
リスト自体を無限に繰り返します。そのままだと永遠に出力されるので、take関数で初めのいくつかだけを取り出します。
Prelude> take 10 $ cycle [1,2,3]
[1,2,3,1,2,3,1,2,3,1]
repeat関数
要素を1つリストとして無限に出力します。先ほどと同じように永遠に繰り返すので、take関数で出力する回数を指定します。
Prelude> take 10 $ repeat 3
[3,3,3,3,3,3,3,3,3,3]
replicate関数
要素を1つ無限に繰り返します。ただしreplicate関数は出力する回数を指定する必要があります。こちらでは3という数値を10回出力にかけています。
Prelude> replicate 10 3
[3,3,3,3,3,3,3,3,3,3]
Discussion