众所周知,Haskell风格的类型类和ML风格的模块提供了不同的接口规范机制。它们在功能上(可能)是等价的,但在实践中,每种机制都有其自身的优缺点。 既然我对语言特性有点包容,那么我的问题是:添加ML风格模块到Haskell中的主要理论困难是什么?我对以下类型的答案感兴趣: - 哪些现有的...
我的问题是标准ML的模块系统和OCaml模块系统之间是否有任何区别? OCaml是否具有SML拥有的所有functors、ascriptions等支持?
我注意到,在我认识的OCaml程序员中,有些人总是使用多态变体(未声明的变体,带有反引号前缀),而其他人则从不使用多态变体,更喜欢在类型中声明变体。 除了性能原因(目前编译多态变体的效率比简单变体低),专业的OCaml开发人员如何在它们之间进行选择?
我需要在机器学习中写一些代码,这是我第一次使用该语言。 是否有适用于标准ML的开发环境(最好是在Windows下)?我尝试过谷歌搜索(和StackOverFlow!),但是我只找到了用于Linux的普通编译器(最多带有交互式控制台),没有IDE或Eclipse/NetBeans插件。 有什么建议吗?
根据Harper的说法(https://existentialtype.wordpress.com/2011/04/16/modules-matter-most/),似乎类型类并没有提供与模块同等级别的抽象,但我很难确切地弄清楚为什么。该链接中也没有示例,因此很难看出关键区别。还有其他论文介绍...
曾经有人向我展示了SML中的一个小技巧,他们在REPL中编写了大约3或4个函数,最后一个值的结果类型非常长(需要很多页才能滚动完)。 是否有人知道生成这种长类型的代码,或者是否有一个名称来描述这种行为?
我在函数式语言中看到过很多处理列表并构建一个函数来处理其元素的示例,以便在接收到某些额外值(通常不在生成函数时出现)后执行某些操作,例如: 计算每个元素与平均值之间的差异 (“惰性求值”下的最后两个示例) 在严格的函数式语言中(如ML / OCaml)分阶段进行列表附加,以避免多次遍历第...