home


[関数]

関数は,まず関数名と引数を書き,その後で"="記号を挟んで本体を定義します. 例えば2つの引数を受け取りその和を返すsum2の定義は以下のようになります.
sum2 x y = x + y
関数の引数と返り値の型を明示するには,それぞれの型を順に"->"でつないで表現します.
sum2 :: Double -> Double -> Double
sum2 x y = x + y
その他の例として,Int型の変数を受け取りBool型の返り値を返す関数の,型を明示した定義は以下のようになります.
isOne :: Int->Bool
isOne x = x == 1
上記の定義をファイルfoo.hsにセーブしてghci内でロードすると,以下のようになります.(負の値は結合則の関係で括弧で囲まないとうまく動きません)
Prelude> :l foo.hs
[1 of 1] Compiling Main             ( foo1.hs, interpreted )
Ok, modules loaded: Main.
*Main> :t isOne
isOne :: Int -> Bool
*Main> isOne (-1)
False
*Main> isOne 1
True