Hatena::Grouphaskell

lnzntのHaskell日記 このページをアンテナに追加 RSSフィード

2010年11月04日(木)

リストとタプル

| 21:47 |  リストとタプル - lnzntのHaskell日記 を含むブックマーク はてなブックマーク -  リストとタプル - lnzntのHaskell日記  リストとタプル - lnzntのHaskell日記 のブックマークコメント

上のサイトでお勉強の続き。「5.構造化されたデータ」です。

リスト

同じ型の値を複数持つことができる。

Prelude> [1, 2, 3]
[1,2,3]
Prelude> [1 .. 5]
[1,2,3,4,5]
Prelude> 0 : [1..5]    # :演算子は Lisp でいう cons      
[0,1,2,3,4,5]

(リスト操作)
Prelude> map (+ 2) [1 .. 5]
[3,4,5,6,7]
Prelude> filter (> 2) [1 .. 5]
[3,4,5]

タプル

異なる型の決まった数の値を持つことができる

Prelude> (1, True)
(1,True)
Prelude> zip [1 .. 5] ['a' .. 'e']
[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e')]

(2 要素タプルを扱う関数)
Prelude> fst (1, 2)
1
Prelude> snd (1, 2)
2
Prelude> map fst [(1, 2), (3, 4), (5, 6)]
[1,3,5]