home


[制御文]

条件分岐を記述するには,if文またはcase文を用います.

1. if文

if文は,「if 条件式 then 本体1 else 本体2」と記述します.条件式が真のとき本体1が適用され,そうでないとき本体2が適用されます. 例として,引数xが0以上であれば1を返し,そうでなければ-1を返す関数stepは,以下のように定義出来ます.
step x = if 0 <= x then 1 else -1
stepに対する動作例は以下のようになります.
*Main> step (-1)
-1
*Main> step (-3)
-1
*Main> step 2
1

2. case文

case文はif文と類似した場合分け機能を持ったものですが,より細かい場合分けを行いたいときに便利です. 「case c of v1 -> 本体1; v2 ->本体2; ... vN ->本体N; _ -> 本体0」と記述します. cの値により場合分けを行い,v1,v2...vNの中でcと同じ最初に同じ値となるのがviがすると,本体iを適用します. "_"は任意の値にマッチします. case文の使用例を以下に示します.
caseTest x = case x of 1 -> 10; -1 -> -10; _ -> 0
以下のように記述しても同じです.
caseTest x = case x of 
	1 -> 10
	-1 -> -10
	_ -> 0
caseTestの動作例を以下に示します.
*Main> caseTest (-1)
-10
*Main> caseTest 0
0
*Main> caseTest 1
10
*Main> caseTest 2
0