『ふつうのHaskell』の読書メモ
標準の関数まとめ
関数 | 型 | 動作概要 |
---|---|---|
== |
a -> a -> Bool |
第一引数と第二引数を比較した結果を返す |
lines |
String -> [String] |
改行文字コードで区切ってリストに変換 |
words |
String -> [String] |
単語に分解する |
length |
[a] -> Int |
リストの要素数を返す |
reverse |
[a] -> [a] |
リストを逆順にしたリストを返す |
map |
(a -> b) -> [a] -> [b] |
第二引数のリストの個々の要素に対して第一引数の関数を適用したリストを返す |
concat |
[[a]] -> [a] |
リストのリストを連結した一つのリストにする |
concatMap |
a -> [b] -> [a] -> [b] |
リストを返す関数を第二引数のリストに対して適用して、連結したリストを返す |
unlines |
[String] -> String |
文字列のリストを改行で連結する |
take |
Int -> [a] -> [a] |
第二引数のリストの先頭から第一引数で指定した数の要素を取り出したリストを返す |
replicate |
Int -> a -> [a] |
第二引数の要素を第一引数の数だけ含むリストを返す |
putStr |
String -> IO() |
引数の文字列を標準出力に出力する |
print |
Show a => a -> IO() |
値を文字列化して標準出力に出力するアクションを返す |
パターンマッチ
【例】タブ文字を半角ブランクx2に置換する関数
replaceTab :: Char -> String replaceTab '\t' = replicate 2 ' ' replaceTab c = [c]
【例】map
関数の定義
map :: (a -> b) -> [a] -> [b] map f [] = [] map f (x:xs) = f x : map f xs
【修正 2015/05/05 15:56】昨晩眠くて書けなかったところを更新した