1

カテゴリの非常に基本的なジェネリック モデルの場合、オブジェクトのペアに関連付けられたモーフィズムを反変的に取得しようとしています。

class Obj[DerivedObj <: Obj[DerivedObj]] { /* ... */ }

class Morphism[DerivedMorphism <: Morphism[DerivedMorphism]] { /* ... */ }

どういうわけか定義できるようにしたい:

def mor( from : SomeConcreteObj, to : SomeConcreteObj ) : SomeConcreteMorphism;

しかし、mor を Obj のメソッドにする「明白な」解決策では、Morphism によって Obj をさらに型パラメータ化する必要があります。

そのようなことを達成するScalaの方法は何ですか?

4

1 に答える 1

0

OK、エンティティ関係が悪い。おそらく、mor は実際には何らかの Category クラスのメソッドであることを意味しています。

trait Cat[O,M] {
   def mor( from : O, to : O ) : M;

}

これは問題を解決するようです。

于 2012-05-01T07:33:56.027 に答える