好きをブチ抜く

「好き」をブチ抜く

本、映画、科学、哲学、心理、すごい人の考え方など。あらゆる情報を編集したい。

Haskell入門② パターンマッチ

値を手軽に分解する方法パターンマッチ

ある種のデータが従うべきパターンを指定できる。引数の構造で場合分けする。関数定義の際に、パターンマッチを使って、関数の本体を場合分けできる。これによって、読みやすいコードが書ける。

sayMe :: Int -> String
sayMe 1 = 'One'
sayMe 2 = 'Two'
sayMe 3 = 'Three
sayMe 4 = 'Four'
sayMe x = "Not between 1 and 4"

再帰的に階乗を定義することもできる。

factorial :: Int -> Int
factorial 0 = 1 
factorial n = n * factorial (n-1)
リストのパターンマッチとリスト内包表記

リスト内包表記でのパターンマッチでは、失敗したら次の要素に進む。

Prelude>let xs = [(1,3),(4,3),(2,4),(5,3),(5,6),(3,1)]
Prelude>[x*100+3 | (x, 3) <- xs]
[103, 403, 503]