看完 Philip Wadler 关于轻量级围棋的演讲后,我对最新的围棋泛型草案感到非常兴奋。但是现在有了一个可供我们使用的新泛型草案版本,似乎轻量级围棋中的一些东西不再可能。在谈话和论文中,他介绍了一个类似函数的接口,称为List. 论文中的方法不太奏效。type Any interface {}type Function(type a Any, b Any) interface { Apply(x a) b}type Functor interface { Map(f Function) Functor}失败并出现错误:cannot use generic type Function(type a, b) without instantiation如果您尝试向该方法添加类型参数,并使用您得到的普通函数:methods cannot have type parameters我想知道是否有人找到了使函子与当前版本的草案一起使用的方法。
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
您还没有使用泛型类型;在您的示例代码中,Functor将Function其视为不是通用的。正确的代码(编译,见这里)将是:
type Function(type a Any, b Any) interface {
Apply(x a) b
}
type Functor(type a Any, b Any) interface {
Map(f Function(a,b)) Functor(a,b)
}
- 1 回答
- 0 关注
- 187 浏览
添加回答
举报
0/150
提交
取消