Haskellの始め方(3)条件分岐とパターンマッチング
1.パターンマッチング(case式)
式の値がパターンにマッチするかしないかを判定する仕組み。
getValue defval maybe =case maybe ofNothing -> defvalJust x -> x
main = doprint (getValue 0 Nothing) -- 出力: 0print (getValue 0 (Just 5)) -- 出力: 5
Nothing と Just x は maybe型で、
(1) Nothing 値が存在しないとき、
(2) Just x 値xが存在するとき、
使用します。
2.ガード(case式)
パターンの後に、| で、条件式を記述する。
max' :: (Ord a) => a -> a -> amax' a b| a <= b =b| otherwise =a
3.if式
if ... (条件式)then ...(式1) else ...(式2)
と書く。この時、then...else...以下は省略できない。
必ずelse以下も書かなければならないし、式1と式2は型が同じである
必要がある。
また、 if b then e1 else e2 という式は、次のcase式に相当する。
case b of
True -> e1
False -> e2
後でたぶん大幅に加筆修正する。(ソース例の部分を)
(参考)