1

对于一个非常基本的类别通用模型,我试图以逆变方式获得与一对对象相关联的态射。

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

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

我想以某种方式能够定义:

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

但是使 mor 成为 Obj 的方法的“明显”解决方案需要 Obj 额外由 Morphism 进行类型参数化。

实现这种事情的Scala方式是什么?

4

1 回答 1

0

好的,我的实体关系不好。据推测,这意味着 mor 实际上是某个 Category 类的方法:

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

}

这似乎可以解决问题。

于 2012-05-01T07:33:56.027 回答