F#中的显式类型递归

7
1个回答

8
不,这是不可能的。具体来说,F#中的泛型与CLR具有相同的限制,即<T>或<'a>必须具有“*”类型。这意味着您无法直接在F#中编写“类型类”,因为例如“Monad m”将采用更高级别的参数'm'(例如“* -> *”,其中例如'list'和'option'可以是实例,它们本身是通用类型构造函数),但是这是不允许的。

1
Haskell类型类也适用于*类型的事物,实际上高阶类型的类最初被称为“构造器类”,尽管现在这种区别大多被忽略了。 - GS - Apologise to Monica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接