1

私がよく理解していない System F 多形性の例があります。 ここに画像の説明を入力

タイプを削除すると、\f.\af (fa) が残り、意味がありません。

これで私を助けてもらえますか?ありがとうございました!

4

1 に答える 1

4

消去された用語には意味があります。Haskell では\f a -> f (f a)、最初の引数を 2 番目の引数に適用し、結果に再び適用するごく普通の関数です。

\f a -> <body>との違い\f.\a. <body>は表記の 1 つにすぎません。必要に応じて、Haskell 用語 を書きます\f -> \a -> f (f a)。これは同等ですが、構文的には削除された System F に少し近いものです。

(doubleこれは自己適用ではないことに注意してください\f -> f f。)

于 2016-02-08T06:05:53.800 に答える