1. Top » 
  2. スポンサー広告 » 
  3. 【Haskell】リストの処理について
  4. プログラミング全般 » 
  5. Haskell » 
  6. 【Haskell】リストの処理について

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【Haskell】リストの処理について

過去の記事
【Haskell】とても簡単なHaskellプログラムについて
【Haskell】標準入力(stdin)を読み込むために
【Haskell】結構頻繁に使う関数などの話
【Haskell】高階関数と型の定義について



今回はリスト処理の話の総括です。

リストの型
リストには同じ型のモノが入ります。IntならInt、StringならStringのリストです。
それぞれ、[Int]、[String]のような型になり、空リストでは[]で表されます。

文字列とリスト
文字列には改行である\nが入ります。
\nに対して、文字列Stringを文字列のリストへ分割する関数とその逆の関数があります。
第一回などで使っているlines、unlines関数です。

Prelude> print $ lines "aiueo\nkakikukeko\nsasisuseso\n"
-->["aiueo","kakikukeko","sasisuseso"]
Prelude> print $ unlines ["a", "i", "u", "e", "o"]
-->"a\ni\nu\ne\no\n"
Prelude>



リストの処理
リストの長さはlength関数で調べられます。

Prelude> print $ length ["a", "i", "u", "e", "o"]
5



リストの頭n個をとってくる関数はtake関数です。

Prelude> print $ take 2 ["a", "i", "u", "e", "o"]
["a","i"]



リストはreverse関数でひっくり返すことが出来ます。

Prelude> print $ reverse ["a", "i", "u", "e", "o"]
["o","e","u","i","a"]



Tabや空白を元にして単語のリストに分けることも出来ます。

Prelude> print $ words "this is a pen."
["this","is","a","pen."]
Prelude> print $ words "a\nb\nc\n"
["a","b","c"]



リストのリストを連結して一つのリストにする。
リストのリストのリストを連結してリストのリストにする。
このようにリストのレベルを一つ減らす関数はconcatです。

Prelude> print $ concat [ [1,2], [3], [4,5], [6]]
[1,2,3,4,5,6]
Prelude> print $ concat [ [[1,2]], [[3]], [[4,5]], [[6]]]
[[1,2],[3],[4,5],[6]]



あるxをn個含んだリストを作るにはreplicate x nとします。

Prelude> print $ replicate 5 7
[7,7,7,7,7]



リストを生成する演算子として : があります。
おそらくどちらか一方はリストでなければなりません。

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




リスト処理にもいろいろありますね。
関連記事
スポンサーサイト

Comment

コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/489-11274568 この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。