スライド30/78 thisプレゼンテーションでは、タイプクラスの実装が最初は「絶望」であったことをSimonは示唆しています。それが誰に気付いたのですか?なぜ型クラスを実装するのが難しいのですか?
答えて
私は先行技術がないときにhbcで実装して以来、なぜ難しいのかの最初の手の経験がある少数の人々だと思います。
Wadler & Blott紙から明らかなことは、タイプチェックがHindley-Milnerタイプチェックの延長であり、実行時に辞書を渡すべきだったということでした。それから実際の実装まではかなり大きなステップです。困難を理解する良い方法は、Wadler-Blott紙だけから実際に実装することです。
まず、タイプのチェックだけでなくプログラムの変換も行うタイプチェッカーの考え方を思いつく必要があります。型検査中に証拠(辞書)を挿入する。また、インスタンス宣言を推論システムとして使用して古い辞書から新しい辞書を構築する方法を理解する必要があります。
遡ってみると分かりやすいかもしれませんが、その時以来、説明付きの多くの論文が書かれています。紙から何かをする方法を理解することは、最初にそれを思いつくこととはまったく異なっています。
さらに、タイプクラスを合理的に効率的にすることで、独自の問題が発生しやすくなります。
あなたがどこかに投稿したい(または持っている)場合は、この物語のより長いバージョンが大好きです。 –
@ JohnF.Millerさて、20年以上前のことです。詳細はもはや私の記憶の中ではっきりしません。 – augustss
詳細をご覧ください。あなたが言及した論文を指すこともできますか? –
- 1. Java 7のダイヤモンド演算子:なぜ実装が難しいのですか?
- 2. T-SQLでループを実行するのがなぜ難しいのですか
- 3. タイマーを実装するのが難しいです - Javascript
- 4. Javaでlinked-listでキューを実装するのが難しい
- 5. カスタムMavenResourcesFilteringを実装するのは難しいですか?
- 6. C++でリンクリストを実装するのが難しい
- 7. 剣道UIでグラフウィジェットを実装するのが難しい
- 8. Stringクラスで携帯型ライブラリのIEnumerable <char>が実装されないのはなぜですか?
- 9. JavaがArrayListクラスを使用してHashtable/HashMapクラスを実装していないのはなぜですか?
- 10. java.util.BitSetがjava.util.Setを実装しないのはなぜですか
- 11. AtomicUsizeがSendを実装しないのはなぜですか?
- 12. Generic型クラスのEqualityメソッドを実装していますか?
- 13. なぜRustは既存の型の実装を禁止していますか?
- 14. カーネルモードでのデバッグが難しいのはなぜですか?
- 15. 関連していないC#クラスの型制約を実装する
- 16. なぜインタフェース実装がより特定の型を返すことができないのですか?
- 17. なぜRubyでのメモリプロファイリングが難しいですか?
- 18. なぜArrayListはQueueを実装しないのですか?
- 19. なぜjavaのHttpServletがシリアライザブルを実装していますか?
- 20. IEnumerableを実装しているクラスでLINQメソッドを使用できないのはなぜですか?
- 21. なぜPythonにネイティブリンクリスト実装がないのですか?
- 22. Django AdminSite - 難しくて簡単な実装ですか?
- 23. jQueryの検証 - $ .ajaxリクエストでカスタムバリデーターを実装するのが難しい
- 24. イテレータからすべての関数を実装してイテレータを実装しないのはなぜですか?
- 25. インターフェイスメソッド戻り値の型は、インターフェイスを実装するクラスです。
- 26. 子クラス内のプロトコルを実装するメソッドが呼び出されないのはなぜですか?
- 27. Typescriptで実装されている抽象クラスとインターフェイスが、インターフェイス内のすべてのメソッドを実装する必要があるのはなぜですか?
- 28. IntegerPropertyがプロパティ<Number>を実装し、プロパティ<Integer>を実装しないのはなぜですか?
- 29. ベクターがアソシエーティブを実装するのはなぜですか?
- 30. java.util.ListがSerializableを実装していないのはなぜですか?
ハスケル伝承の専門家ではありませんが、これまでに行われたことがなかった可能性があります。 –
これは確かですが、常にそうです:)しかし、型クラスの場合、何が問題を引き起こしましたか? –
@ŁukaszLew - いいえ、私が理解する限り、これはWadlerとBlottの全く新しいアイデアでした。たとえば、他のソリューションには対応できませんでした。 – Ingo