问题标签 [sml]

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 回答
508 浏览

sml - 如何在标准 ML 中创建惰性树

我想在标准 ML 中实现一个惰性树

我试着用

作为概念测试,但我收到错误消息说类型不匹配。

在 ML 中实现惰性树的正确方法是什么?

0 投票
2 回答
1050 浏览

python - 从命令式编程到函数式编程的转换 [Python 到标准 ML]

我有一个函数规范,说明它应该评估一个变量的多项式函数。函数的系数以列表形式给出。它还接受变量的值作为实数。

例如:eval(2, [4, 3, 2, 1]) = 26 (1*x^3 + 2*x^2 + 3*x^1 + 4*x^0, 其中 x = 2)

这是python中的函数,但我不确定如何将其转换为SML。我很难找到一种在不更改函数参数的情况下将迭代值传递给它的方法。它需要保持一个真正的 * 真正的列表 -> 真正的功能。

0 投票
2 回答
868 浏览

algorithm - 如何解决 SML 中的旅行推销员?

有没有人在标准 ML 中有旅行商问题的解决方案,请告诉我。

我已经尝试了很多但没有成功。

0 投票
1 回答
2179 浏览

list - 从标准 ML 的列表中将元素插入树中

我刚刚开始自己​​学习 SML,但遇到了教程中的一个问题。假设我有:

树数据类型

插入函数

一个整数列表

我的问题是如何添加编写一个函数来遍历列表中的每个元素并添加到树中?

非常感谢您的回答。

0 投票
3 回答
12744 浏览

sml - SML 中的柯里化匿名函数

我有下面的功能,它的工作原理:

但这一个不起作用:

谁能告诉我为什么?或者给我一些提示让它工作?

0 投票
5 回答
1351 浏览

sml - SML/NJ 不完全匹配

我想知道人们如何在 SML/NJ 编译器中处理非详尽的匹配警告。例如,我可以定义一个数据类型

然后有一个我知道只需要 FOO 的功能

编译器会给出警告

我不想看到我故意做的不完整匹配的警告,因为我必须扫描输出以找到可能实际上是错误的警告。我可以这样写函数

但这会使代码混乱。人们在这种情况下通常会做什么?

0 投票
3 回答
2824 浏览

sml - 中缀,中缀,中缀的区别

我读了一本在示例程序中使用中缀、中缀和中缀的书。我想知道有什么区别。我猜中缀器从右到左执行操作,反之亦然。

0 投票
2 回答
3413 浏览

user-input - SML/NJ:获取用户输入

如何在函数运行时提示用户输入?

0 投票
7 回答
509 浏览

haskell - 在递归之前有教学或学习 map/reduce/etc 的经验吗?

据我所知,使用 Scheme 在函数式编程中教授迭代结构的通常(也是我认为最好的)顺序是首先教授递归,然后可能会进入诸如 map、reduce 和所有 SRFI-1 过程之类的东西。我猜这可能是因为通过递归,学生拥有迭代所需的一切(如果他/她想这样做,甚至可以重写所有 SRFI-1)。

现在我想知道是否曾经尝试过相反的方法:使用 SRFI-1 中的几个过程,并且只有当它们还不够时(例如,逼近一个函数)才使用递归。我的猜测是结果不会很好,但我想知道过去使用这种方法的任何经验。

当然,这不是特定于 Scheme 的;这个问题也适用于任何功能语言。

Dave Touretsky 的COMMON LISP: A Gentle Introduction to Symbolic Computation是一本在递归之前教授“应用程序编程”(组合器的使用)的书——但是,这是一本 Common Lisp 书,他可以在此之前教授命令式循环。

0 投票
2 回答
386 浏览

include - 包括两个签名,都带有“t 型”[标准 ML]

一个人为的例子:

显然,这会导致投诉type tC. 但是有什么方法可以表达我希望两个ts 相等,最终得到:

我尝试了各种愚蠢的语法,如include B where type t = A.t,不出所料,这不起作用。有什么我忘记尝试的吗?

另外,我知道这可以通过检查语言的语法是否有任何明显(或缺乏)来简单地回答,但我在互联网上的任何地方都找不到完整的语法。

(FWIW,我尝试这样做的真正原因是 Haskell 风格的 monad 等,其中 aMonadPlus只是 aMonad和 an的混合Alternative;目前我只是在重复ALTERNATIVEin的内容MONAD_PLUS,这让我觉得少比理想。)