私の知る限り、型クラスの制約を持つHaskell関数は、特定の各型クラスの必要な実装を持つ辞書を受け取る追加の引数を持つ関数に内部的にコンパイルされます。
- 型クラスをコンパイルする方法は他にありますか?
- もしそうなら、彼らの(不)利点は何ですか?
- そして、どのコンパイラがそれらを使用しますか?
4
この件に関してはかなりの文献があります。多分、J。Peterson、M. JonesによるImplementing Type Classesから始めましょう。また、OliveiraらによるType Classes as Objects and Implicitsも参照できます。これは、Scalaのコンテキストでこれについて説明していますが、関連する作業についてはかなり大きなセクションがあります。
—
Martin Berger
論文へのリンクを見つけました:実装型クラス。ジョンピーターソンとマークP.ジョーンズ。
—
PetrPudlák2012
@MartinBergerはこれを答えにしますか?
—
Suresh Venkat 2012
もう1つはここにあります。
—
Martin Berger
@Suresh Venkat、私はこれら2つが最良であるかどうか、または良い答えであるかどうかわからないので、答えにしたくありませんでした。関数型言語の実装を見たのは久しぶりです。たぶん、レジデントFPボッドの一部が鳴り響くかもしれません。–
—
Martin Berger