部分適用
引数が足りてないオブジェクトを作ることが出来る。キモい。
inc :: Int -> Int inc = (1 +)
(1 + ) 何か
えぇぇぇ。
分解すると、
add :: Int -> Int -> Int -> Int add x y z = x + y + z ans = ((((add) 1) 2) 3)
addオブジェクトを作って、(1 +) オブジェクトを作って、(1 + 2 +)オブジェクト。1 + 2 + 3 = 6と・・・。
ナンダコレハ。
Haskellでは引数を2個以上取れないから、コレが普通なんだ。
つまり、addオブジェクトを作って、(1 +) オブジェクトを作って、(3 +)オブジェクト。3 + 3 = 6と計算してる訳だ。
引数が全部揃う前に、計算出来る所は計算してしまえと。ははぁん。
Haskellの謎の部分が少し解けた気がする。