什么设置的两毫升的方言分开?

有帮助吗?

解决方案

有许多差异,一些技术,一些社会政治.我试着把更多的重要的差异第一次。

  • SML是一种语言的定义和标准。它是稳定的(实际上已被冻结,使它无法演变).目标加枫是一个实现通过一个控制小组在什么样的.它继续发展。(海事组织演变为管理很好。)

  • SML有许多的实现;加枫只有一个。

  • 目标加枫有一些额外的功能,其中最突出的可能对象以及多形态的变体。

  • 两个语言都有显着不同型号的记录类型。简单地说,在加枫,姓名的记录领域的必须是独一无二的,在SML,两个不同的记录类型在同一范围内可能具有域名的共同点。这个怪癖可以使移植从SML到加枫有点棘手。

  • 有好几句法上的差异。

  • 库和标准职能明显不同。在加枫库是非常必要的,而SML标准的基础上图书馆是一个更能发挥职能的机构。例如,功能的组合是一个顶级的原始在SML;这不是部分的加枫图书馆。在加枫串的图书馆不能提供一倍功能(至少不作为的版本3.08).实现的许多加枫 List 功能是不安全的很长名单;他们的打击。

  • 这类系统的微妙的不同:在加枫,一种注释上的一种表达 e : ty 是接受如果类型 ty 统一 的类型 e.在SML, e : ty 被接受的,如果只的类型 ty 是一个 实例 的类型 e.这种区分渲染的注释中加枫多少用处,在实践中,因为这是不可能使用一种注释,坚持认为,一个表达多态的。

  • 加枫有一个更理智和理智的关系之间的接口(所谓 模块的类型签名)和(具体的)的实现(称为 模块结构 于)SML。在SML很多东西去,你必须依靠的程序员建立良好的公约。在加枫,良好的公约是建立和执行通过的编译器。

  • 在SML、算术运营商是超载以适用于这两个浮点和整数的数据。在加枫,运营商不过载;浮点运算符称与一个额外点。

  • 在SML,编程员可以控制的优先顺序和associtivity的缀操作员。在加枫,这些都是确定的第一个字符的操作者的名称。这种限制的限制的好处能够确定自己的缀符号。

为了更详细的分析完整的编辑上的评论,您也可以看看 亚当Chlipala的比较页.

其他提示

有关的句法的差异,诺曼*拉姆齐所提到的,这里有几个网页:

OCaml的增加面向对象的特征,并且具有一些小的语法差异。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top