7得票1回答
在SML中等价于编码rank-2多态性

runST是Haskell函数,通过类型静态约束可用资源的寿命。为此,它使用了rank-2多态性。标准ML更简单的类型系统只提供rank-1多态性。 标准ML是否仍然可以使用类型来约束资源的寿命,从而实现类似的结果? 这个页面和这个页面演示了一些重构代码的方法,只需要更简单的类型就可以。如...

7得票4回答
在OCaml中返回列表中的元素列表

我刚开始接触OCaml,并尝试实现一个函数,该函数返回给定列表 x 中在列表 y 的索引处的元素列表。 例如,该函数应执行以下计算:[5,6,7,8],[0,3] => [5,8] 我不确定如何在ML中存储临时变量,也不清楚它是如何工作的。尽管如此,我知道如何通过指定的索引从列表中查...

7得票1回答
高阶函数中的curry和uncurry是什么?

fun curry f x y = f (x, y); fun uncurry f (x, y) = f x y; fun compose (f, g) x = f (g x); 我理解compose函数,但不太理解ML中的curry和uncurry。有人能解释一下吗? 此外,以下两...

7得票3回答
OCaml中的弱多态性

我对OCaml中的弱多态性有些困惑。 请看下面的代码片段,其中我定义了一个函数remember: let remember x = let cache = ref None in match !cache with | Some y -> y ...