人気ブログランキング | 話題のタグを見る

Data.List モジュールの使い方(15) isPrefixOf

文字列の中に、語句が含まれているかどうかを検索したい時はよくある。そんなときに使うのが Data.List モジュールの isPrefixOf, isPostfixOf, isInfixOf だ。

isPrefixOf は第1引数の語句が、第2引数の文字列に前方一致するときに True になる。
Prelude> List.isPrefixOf "I" "I really like Haskell."
True

標準モジュールの関数を ghci から使うときに、関数の先頭にモジュール名を明記して . でつなぐと、モジュールをインポートしないでも使うことができる。

isPostfixOf は第1引数の語句が、第2引数の文字列に後方一致するときに True になる。
Prelude> List.isSuffixOf "Haskell." "I really like Haskell."
True

isInfixOf は第1引数の語句が、第2引数の文字列の中に含まれているときに True になる。
Prelude> Data.List.isInfixOf "really" "I really like Haskell."
True

これで、Haskell でも語の検索だけは簡単にできることが分かった。さらに、Haskell の文字列はリストだから、同じ関数が数列のパターンの検索にも使える。
Prelude> Data.List.isInfixOf [3,4] [1..10]
True

関数型言語の関数の抽象度の高さの便利さが感じられる例だ。
by tnomura9 | 2011-08-31 17:02 | Haskell | Comments(0)
<< Data.List モジュール... Data.List モジュール... >>