関数を定義する

Haskellは、関数を定義していくことでプログラムができあがります。

hoge = 1

一見、変数hogeに1を代入しているように見えますが、違います。これは、「hogeという関数を、1を返すと定義する」と考えます。「=」で関数を定義します。

引数をとる関数の場合は、

hoge x y = x + y

となります。これは、「hogeという関数を、xとyを引数とし、x+yを返すと定義する」のようになります。

他の言語に慣れているかたは、大変でしょうが、一緒にがんばりましょう。ちなみに、Lisp系に慣れている方は、括弧をつけるとわかりやすい気がします。

(hoge x y) = ( x + y )

途中の「=」は別として、なんとなくLispにみえませんか?私は、わからなくなった括弧を脳内補間しています。