ml

    1热度

    2回答

    在我看来,像[](空列表)和None/Nothing是如此相似。 我想知道是否有任何的语言家族有基本的列表类型,其中每个元素是一个选项,尾部守卫是什么? 是不是(这样做,在具有不同类型的语言中),因为它会使模式匹配列表过于冗长?

    1热度

    2回答

    我需要在SML中实现快速排序来完成家庭作业,而且我迷路了。我之前并不熟悉quicksort是如何实现的,所以我读到了这一点,但是我读到的每一个实现都是非常重要的。这些看起来并不难,但我不知道如何在功能上实现快速排序。 维基百科碰巧在Standard ML(这是我的任务所需的语言)中有quicksort代码,但我不明白它是如何工作的。 维基百科代码: val filt = List.filter

    4热度

    1回答

    我想快速掌握F#,并想知道这本书“The Little ML'er”是否会有所帮助,因为F#是基于OCaml,它是ML的派生词。或者,ML与F#有什么不同?是否有任何帮助? 谢谢。

    0热度

    1回答

    我知道这个问题之前已经被问过了,但以前的问题都没有答案为我工作,所以我会尝试一种不同的方法。 我已经做到了这一点: > datatype which = STRING of string | INT of int; datatype which = INT of int | STRING of string > datatype whichTree = Empty | Leaf of whic

    1热度

    3回答

    我试图编译2个.ml,其中一个项目是一个模块follwing这种格式 module Mymodule = struct ... end;; 我还为Mymodule中 一个.mli module Mymodule = sig ... end 但现在当我打电话Mymodule.myfunction在main.ml,我得到"Unboun

    0热度

    1回答

    我正在阅读在线书籍“计算分类理论”http://www.cs.man.ac.uk/~david/categories/book/book.pdf,本书中存在问题2.10的一些问题。特别是随着powerset的定义。 abstype 'a Set = set of 'a list with val emptyset = set([]) fun is_empty(set(s)) =

    0热度

    1回答

    我是一个newby。我写下面的代码。 Delay(e) == fn() => e Force(e) == e() fun time_consuming(n) = let fun tak(x, y, z) = if x <= y then y else tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y)) in f

    2热度

    1回答

    我刚刚开始学习SML,并仍在理解其错误消息。尝试输入下面 val rec : real->real = fn 0.0 => 0.0 | n:real => 1.0/n; 我得到以下错误的函数定义时 : stdIn:25.9-25.17 Error: syntax error: deleting COLON ID ARROW stdIn:25.24-25.33 Error: syntax er

    0热度

    1回答

    我们接下来dayatype: ​​ 和两个功能: - val real = fn (Rec(x,y)) => x | (Polar(r,a)) => r * Math.cos(a); val real = fn : complex -> real - val imaginary = fn (Rec(x,y)) => y | (Polar(r,a)) => r * Math.sin(

    0热度

    2回答

    是否有标准ML没有办法让一个仿函数输出,具有所有的结构传递的功能的结构,以及任何新的功能。 以类似的方式,是有可能做多的归属?在的情况下,因为你可以在仿函数的输出归咎于原有结构的两个签名并说明新功能的另一签名它上面会立即投入使用。 我明白做这样的事的影响,以及为什么它可能是一个坏主意。目前,我刚刚被保持仿函数输出内的结构传递的副本 - 但是这意味着你有“Foo.Bar.func”的长链访问的基本功