10

ここhttp://en.wikibooks.org/wiki/Haskell/Classes_and_typesの「クラスの継承」セクションで、「クラスは他のいくつかのクラスから継承できます。=>の前の括弧内にすべての祖先クラスを置くだけです。」と読みました。

「(...)=>」が「継承」と表現されていると困惑します。私が見る限り、それは単にクラスの制約です。この新しく定義されたクラス(例:Real)は、リストされたクラス(NumおよびOrd)のメンバー(インスタンスを持つ)であるタイプに適用されることを単に示しています。

要するに、「(...)=>」は、このクラスのインスタンスが作成される可能性のあるタイプに必要な品質のフィルターのように機能し、クラスまたはそのインスタンスのいずれかを拡張するようには機能しないようです。

私は何かが足りないのですか?「(...)=>」が実際に「親」から「子」に何かを渡すという意味はありますか?

4

2 に答える 2

15

実際には、これはサブクラスのすべてのメンバーが必ずスーパークラスのすべてのメソッドを提供することを意味します。

したがって、リンクされた例のように、 を必要とするメソッドを作成できますが、制約Eqを与えるだけで、メソッドは暗示されます。OrdEq

(継承という言葉はおそらくひどいものであることに注意してください。なぜなら、継承には、私たちのコンテキストでは意味をなさない多くの関連性があるからです。それにもかかわらず、私はそれを説明したほうがよいと考えました。)

于 2013-02-07T02:59:19.830 に答える