5

Haskell ではすべての関数が元々カリー化されていますよね?

それでは、max関数を見てみましょう。これがどのように機能するかについて、私が理解していることを書きます。

私がこのようなものを書くとき:

max 4 5

内部的に値 4 を持つ新しい関数が作成され、値を受け取ると、この関数が 5 に適用され、正しい値が返されるとどうなりますか?

何か間違ったことを言ったのですか、それともこれは正しいですか?

4

1 に答える 1

9

そのとおりです。カリー化の最も重要なアイデンティティの2つを覚えておくことで、カリー化とは何かを思い出すことができます。

-- Function type right-associativity:
a -> b -> c = a -> (b -> c)

-- Function application left-associativity:
f x y = (f x) y

これらの2つのアイデンティティは連携して機能し、カレー語を生成します。

于 2012-09-27T02:52:37.447 に答える