Haskell道 その2
- 作者: Miran Lipovača,田中英行,村主崇行
- 出版社/メーカー: オーム社
- 発売日: 2012/05/23
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 580回
- この商品を含むブログ (68件) を見る
リスト操作
結合
[1, 2, 3] ++ [4, 5, 6] -> [1, 2, 3, 4, 5, 6]
リスト結合時は左側のリストの末端まで走査することになるため、左側に大きなリストを置かない方がいいと書いてるけど、実際は遅延評価なので気にならないっぽい。
*Main> let n = [1..99999999] ++ [1] -- 一瞬 *Main> let t = tail n -- 一瞬 *Main> length t -- 時間がかかる 99999999
先頭に要素を追加する。
let str = "ello, world" 'h':str -> "hello, world" "h":str -> error -- "h"は要素ではないため
アクセス
!! のあとに添え字を置く。
[1, 2, 3, 4, 5, 6] !! 2 -> 3
操作
head [1, 2, 3, 4, 5, 6] -> 1 tail [1, 2, 3, 4, 5, 6] -> [2, 3, 4, 5, 6] last [1, 2, 3, 4, 5, 6] -> 6 init [1, 2, 3, 4, 5, 6] -> [1, 2, 3, 4, 5]
take 3 [1, 2, 3, 4, 5, 6] -> [1, 2, 3]
drop 3 [1, 2, 3, 4, 5, 6] -> [4, 5, 6]
長さ
lenght [1, 2, 3, 4, 5, 6] -> 6
空リストチェック
null [1, 2, 3, 4, 5, 6] -> False null [] -> True
逆リスト
reverse [1, 2, 3] -> [3, 2, 1]