Haskell入門(リスト)

リストの作成

Prelude> [1, 2, 3]
[1,2,3]
Prelude> 1 : 2 : 3 : []
[1,2,3]

リストの連結

Prelude> [1, 2] ++ [3, 4]
[1,2,3,4]

リストの先頭に要素を追加

Prelude> 1 : [2, 3]
[1,2,3]

リストの末尾に要素を追加

Prelude> [1, 2] ++ [3]
[1,2,3]

リストのn番目の要素の取得
インデックスは0から始まる

Prelude> [1, 2, 3] !! 0
1
Prelude> [1, 2, 3] !! 1
2
Prelude> [1, 2, 3] !! 2
3
Prelude> "abc" !! 0
'a'
Prelude> "abc" !! 1
'b'
Prelude> "abc" !! 2
'c'
Prelude> "abc" !! 3
*** Exception: Prelude.!!: index too large

基本のリスト関数

先頭の要素
Prelude> head [1, 2, 3]
1

先頭の要素を取り除いたリスト
Prelude> tail [1, 2, 3]
[2,3]

末尾の要素
Prelude> last [1, 2, 3]
3

末尾の要素を取り除いたリスト
Prelude> init [1, 2, 3]
[1,2]

リストの長さ
Prelude> length [1, 2, 3]
3

リストが空であるか
Prelude> null [1, 2]
False
Prelude> null []
True

逆順にしたリスト
Prelude> reverse [1, 2, 3]
[3,2,1]

リストの先頭からいくつかの要素を取り出したリスト
Prelude> take 2 [3, 4, 5]
[3,4]
Prelude> take 4 [3, 4, 5]
[3,4,5]
Prelude> take 0 [3, 4, 5]
[]

リストの先頭からいくつかの要素を削除したリスト
Prelude> drop 2 [3, 4, 5]
[5]
Prelude> drop 4 [3, 4, 5]
[]
Prelude> drop 0 [3, 4, 5]
[3,4,5]

リストの最大の要素
Prelude> maximum [3, 4, 5]
5

リストの最小の要素
Prelude> minimum [3, 4, 5]
3

リストの合計
Prelude> sum [3, 4, 5]
12

リストの積
Prelude> product [3, 4, 5]
60

リストにある要素が含まれているか
Prelude> elem 4 [3, 4, 5]
True
Prelude> elem 6 [3, 4, 5]
False