同じ型であること示すために、同じ変数名を使う。
例:
reverse :: [a] -> [a]
など。
大抵は型宣言を省略してもコンパイルできる。
但し、ソースを読む時の為に(人間の為に)、きちんと宣言すべき。
関数を引数にとる関数。
これが、関数型言語の肝?
java.util.Map とは大違い。
forループを使って、変換処理を行うのに対応?
if文に非ず。三項演算子の方が近い。
二項演算子も関数。
型宣言では、関数名をカッコで囲んで、2項演算子であることを表す。
リストの次元を一つ落とす。
2次元から1次元、3次元から2次元。