isPrefixOf関数

(Eq a) => [a] -> [b] -> Bool

[a]の全要素が[b]の先頭からの要素に含まれていたらTrueを返す。

(Eq a) =>
import List
main = do print $ isPrefixOf [1,2] [1,2,3]
          print $ [1,2] `isPrefixOf` [1,2,3]
          print $ [2,3] `isPrefixOf` [1,2,3]

結果。

True
True
False
print $ [1,2] `isPrefixOf` [1,2,3]

2つの引数を持つ関数を``で囲むと中置演算子として使える。英語らしくなって読みやすいからとのこと。
他の関数でも試してみる。

main = do print $ map square [1, 2, 3]
          print $ square `map` [1, 2, 3]

square :: Int -> Int
square n = n * n

結果。

[1,4,9]
[1,4,9]

できた。