Scala中的逆变二进制运算

时间:2012-04-30 18:19:33

标签: scala category-theory

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

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

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

我想以某种方式定义:

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

但是使用morj作为Obj方法的“明显”解决方案将要求Obj通过Morphism进行类型参数化。

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

1 个答案:

答案 0 :(得分:0)

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

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

}

似乎可以解决问题。