Mat*_*ick 11 generics haskell types
一个问题刚提出了关于Java泛型.示例代码是:
public interface A < T extends A < T> > {
}
Run Code Online (Sandbox Code Playgroud)
一个链接的问题询问
Class Enum<E extends Enum<E>> ...
Run Code Online (Sandbox Code Playgroud)
当我尝试阅读关于这些通用表达式的java文档时,我的眼睛茫然,这对我来说是希腊语.
我希望我可以用Haskell等价物来理解它们!
Haskell中这些例子中的一个或两个的等价(或类似)是什么?
ham*_*mar 10
这个技巧用于允许接口引用具体的实现类型,例如强制参数的类型和结果的类型与实现类的类型相同,如下所示:
public interface Num<A extends Num<A>> {
A add(A other);
}
Run Code Online (Sandbox Code Playgroud)
这与您在Haskell中使用类型类免费获得的类似:
class Num a where
(+) :: a -> a -> a
Run Code Online (Sandbox Code Playgroud)