11得票3回答
标准ML的函数器范例

Standard ML中的Functor与模块系统相关,可以基于其他结构生成结构。下面是一个生成不同类型列表组合器的functor示例,但该示例存在问题: 各种类型的列表都有其优点--例如,惰性列表可以是无限长的,而连接列表具有O(1)的连接操作符。但当所有这些列表类型都符合相同的签名时,f...

8得票2回答
ML家族的编译器是否会对尾调用进行任何复杂的优化?

我认为以下函数定义是尾递归的: fun is_sorted [] = true | is_sorted [x] = true | is_sorted (x::(y::xs)) = if x > y then false else is_sor...

19得票7回答
你会推荐哪个英文教程来学习OCaml?

我想向初学者推广OCaml,并且正在寻找好的英文教程;不仅是你听说过的,而是你实际尝试过并发现有用的...

9得票4回答
如何在 SML 的 IF 语句中使用 AND 运算符

我是 SML 的新手。 在 IF 语句中如何使用 AND 运算符? 这是我的代码: val y = 1; val x = 2; if (x = 1 AND y = 2) then print ("YES ") else print("NO "); 我的错误是: stdIn:66.9-67...

28得票1回答
(机器学习)模块与(Haskell)类型类

根据Harper的说法(https://existentialtype.wordpress.com/2011/04/16/modules-matter-most/),似乎类型类并没有提供与模块同等级别的抽象,但我很难确切地弄清楚为什么。该链接中也没有示例,因此很难看出关键区别。还有其他论文介绍...

16得票3回答
SML中的`o`运算符只适用于单参数函数吗?

o组合操作符(如val x = foo o bar,其中foo和bar都是函数),只能用于单参数函数和/或参数数量相等的函数吗? 如果不是,那么如何将foo(x,y)与bar(x)组合起来的语法是什么。

43得票3回答
Standard ML模块系统和OCaml模块系统有何不同(如果有)?

我的问题是标准ML的模块系统和OCaml模块系统之间是否有任何区别? OCaml是否具有SML拥有的所有functors、ascriptions等支持?

11得票1回答
仅使用SML/NJ打印输出

我正在尝试使用SML/NJ,使用sml < source.sml运行代码,但它会输出太多信息。 例如,这是source.sml的内容:fun fac 0 = 1 | fac n = n * fac (n - 1) val r = fac 10 ; print(Int.toStrin...

8得票1回答
Ocaml中的重载

我知道OCaml不支持重载。那么,除了重载,我们可以采取什么方法来解决这个问题呢? 1)使用多态代替? 2)为不同的函数赋予不同的名称? 3)将同名函数放在不同的模块中? 哪一个会起作用?

28得票1回答
SML中类型定义的增长:使用Hindley Milner类型推断

曾经有人向我展示了SML中的一个小技巧,他们在REPL中编写了大约3或4个函数,最后一个值的结果类型非常长(需要很多页才能滚动完)。 是否有人知道生成这种长类型的代码,或者是否有一个名称来描述这种行为?