问题标签 [ml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1532 浏览

function - 标准 ML:返回不同的类型

我需要根据传递给另一个函数的函数返回不同的值。

所以,给定:fun inc x = x + 1;

和:fun double [] = [] | double (h::t) = 2*h::double (t);

您应该能够调用我正在使用的函数。

示例调用(我正在制作的函数名为 test):

test (inc, 5);- 它会返回6

-或者-

test (double, [1,2,3,4]);- 它会返回[2,4,6,8]

我知道函数不能从表面上做到这一点,但这可以通过抽象层实现吗?

0 投票
1 回答
424 浏览

recursion - 如何使用递归数据类型在 ML 中创建函数

给定数据类型:

例如,我如何设计一个函数来返回这个递归函数的总和。我了解如何定义递归函数以及如何使用它,但我找不到关于 'ex 如何在线更改数据类型群或我的任何其他参考资料的指示。

0 投票
1 回答
48 浏览

concurrency - ML Refs 的访问保证?

面对并发访问,ML 的 Ref 类型是否有任何访问保证?

0 投票
1 回答
99 浏览

expression - ML Expression,逐行帮助

我正在寻找逐行解释。我是 ML 新手,正在尝试破译一些在线代码。此外,“let/in”命令的描述将非常有帮助。

0 投票
2 回答
575 浏览

filter - 标准 ML(使用 MoscowML) 这个函数有什么问题?(筛选)

这是家庭作业的一部分,所以我的目标是了解为什么这是错误的。正如我之前提到的,我使用的是莫斯科 ML。

我得到的错误是:

我一直在阅读文档,但确实没有帮助。我真正不明白的是'b list 的来源。在我们的任务中,我们必须使用带有尾递归的累加器。我相信我的错误在于过滤器如何调用函数 f。Filter 将谓词作为参数, f 应采用列表和累加器,后者最初是空列表。

我试过像这样调用 f:f L [],但在其他示例中,我们实际上不必用它的参数调用 f,它以某种方式自动传递。

无论如何,任何帮助理解我的错误在哪里以及如何解决问题的指导将不胜感激。

-艾蒂

(如果有人可以给我任何关于解码类型表达式错误的提示,这也可能非常有益。)

0 投票
2 回答
5695 浏览

smlnj - 标准 ML 排列

我正在研究列表中所有值的排列的函数。

这是我到目前为止所拥有的:

输出:

输出应该类似于 [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]。如您所见,我在这里遗漏了一些东西。我相信问题是我的 3 没有被传递给旋转,因为旋转 3 [1,2] 是我的代码中缺少的内容,并且由于某种原因这里有两个 2 元素列表。

如何更正我的 perm 函数以正确显示输出?任何帮助,无论大小,都会对我有很大帮助。

0 投票
1 回答
1297 浏览

smlnj - 标准 ML 二叉树

我仍然有这个问题,所以我可以寻求更多帮助。

我们得到:

第 1 部分。我们被告知需要为包含“which”类型值的二叉树创建另一个名为 whichTree 的数据类型,其中数据仅位于树的叶子处。

我认为这将是正确的答案:

事实证明它不是我跑步时的样子:

我得到一个错误。

我能够弄清楚我可以做这样的事情:

或者

但这些对我来说似乎都不正确,因为在我的第一种情况下,我的数据类型名称中有一个 'a,而在我的另一种情况下,我说的是 int 的叶子,当我应该能够使用 which 来指定 string 或 int 时。

谁能告诉我正确答案是什么或为我提供一些帮助?

0 投票
1 回答
9520 浏览

smlnj - SML/ML Int 到字符串的转换

我有这个代码:

当我运行我的函数时,我得到输出:“32123)231)12)))”。

答案应该是“((32((123)(231)12)))”。

我已经尝试修改我的函数以添加 ( 在我能想到的每个地方,但我无法弄清楚我应该在哪里添加 "("。我在哪里搞砸了?

编辑:我相信我需要在某处使用 map 或 List.filter ,但不确定在哪里。

0 投票
1 回答
1235 浏览

sml - 输入/输出操作 - ML

我正在学习机器学习。有人可以帮助我了解 ML 中的基本输入/输出功能吗?我只想从控制台读取输入并将其存储在一个变量中并在我的 ML 程序中使用它。

请帮忙。如果你能指出我的一些例子,那也太棒了!!!谢谢你。

0 投票
2 回答
1731 浏览

module - OCaml 中的嵌套签名示例?

在 OCaml 中,您可以嵌套签名:

我只是想知道是否有人有任何使用的例子,因为我想不出任何需要它的地方。我想它可能在函子的返回签名中很有用,但我想不出任何具体的东西。