SML模块系统与Haskell的Type和Typeclass系统之间的能力有何不同?

时间:2014-06-04 00:43:59

标签: haskell module sml type-systems

我试图了解缺点在哪里。 SML模块系统是否仅提供依赖类型,类似于Idris如何扩展Haskell类型系统,还是继续进行,而不仅仅是依赖类型的附加功能?有关现有互联网文章中SML模块系统的信息要么难以找到,要么难以理解。

**编辑** 关于我真正对这个问题的看法有些困惑,混淆似乎源于我对ML模块系统的困惑(我认为由于我理解Haskell方式的Functors)。提供依赖类型作为两种类型系统之间可能存在差异的一个例子,但事实证明它是一个不好的例子,因为两个系统都不支持这样的事情(至少不是直接)。

这个问题的主要目标是让我确定ML和Haskell类型系统之间概念表达的差异。哪些抽象/概念不能用另一个抽象/概念表示?为什么有人会声称ML的类型系统比Haskell更现代/更强大,反之亦然。想到这一点的另一种方法是,哪一种类型的系统缺少另一种不存在?

我有兴趣了解这一点的原因是我对构建软件系统感兴趣以及不同类型系统如何使软件的模块化和可扩展性变得更容易或更困难。我对命令式语言中的面向对象类型系统一直不感兴趣,所以我现在正在研究和研究ML和Haskell提供的那些系统,因为它们是我第一个感兴趣的人。

1 个答案:

答案 0 :(得分:0)

limp_chimp回答了我的问题,在网上提供了一篇论文,它提供了Haskell和ML类型系统之间非常详细的比较和实例。

http://www.cse.unsw.edu.au/~chak/papers/modules-classes.pdf