问题标签 [smlnj]

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 投票
2 回答
980 浏览

functional-programming - SML 中的原型设计功能

我有两个函数,fg,它们以递归方式相互调用。不幸的是,当f调用它时g,它还没有被声明,所以我得到一个“未绑定变量”错误。我如何在 SML/NJ 中对这个函数进行原型设计(或任何等效词汇)?

0 投票
3 回答
1750 浏览

queue - 如何在 SML/NJ 中使用队列库

我看到 SML/NJ 包含一个队列结构。我不知道如何使用它。如何使用 SML/NJ 提供的附加库?

0 投票
1 回答
426 浏览

sml - SML 在位级别比较文件

我正在尝试使用 SML 比较目录中的文件。使用 TextIO 库相当容易,但我需要在位级别比较文件。也就是说,二进制比较。我正在使用与此类似的功能:

列出给定目录中的所有文件。但是现在,我需要查看每个文件中的位。有什么建议么?

0 投票
2 回答
466 浏览

smlnj - smlnj listdir 问题

我是一个学习sml的新手,给我的问题涉及到我不理解的IO功能。这是我真正需要帮助才能开始的 2 个问题,请向我提供代码和一些解释,我将能够对其他问题给出的代码进行反复试验。

Q2) readlist(filename) 读取文件名列表(每个文件名由 (Q1) 中的 listdir 生成,并将它们组合成一个大列表。(从 Q1 中的文本文件读取,然后将内容分配到 1 个包含所有信息)

问题是,我只在介绍部分从学校的讲师那里学到,甚至没有显示系统输入或输出示例,甚至没有教授“使用文件”功能。如果知道 sml 的人看到这个,请帮忙。感谢任何努力帮助我的人。

感谢您的回复,目前我正在使用 SMLNJ 尝试执行此操作。基本上,Q1 要求我将提供的“目录名”的目录文件列出到“文件名”中的文本文件中。Q2 要求我从“文件名”文本文件中读取,然后将内容放入一个大列表中。

顺便说一句,如果你们只看到这篇文章,也请尝试提问。目前我被困在试图从 txt 文件中读取并将其附加到一个列表中,我可以为单行执行此操作,但现在我正在尝试为整个文件执行此操作:

0 投票
1 回答
166 浏览

smlnj - smlnj 改写了 listdir(filename, directoryname) 的问题

我是一个学习 sml 的新手,我遇到的问题涉及 IO 函数,即使在阅读之后我也不知道它是如何工作的。这是我真正需要帮助才能开始的 2 个问题,请为我提供编码和一些解释,我将能够使用为其他问题提供的代码进行试验和错误。

Q1) listdir(filename,directoryname),给出一个目录的名字,在一个文本文件中列出它的内容。该列表的形式可以很容易地将文件名、日期和大小彼此分开。(类似于 msdos 对“dir”所做的操作,但不仅仅是将其列出,而是将所有文件和详细信息放入一个文本文件中。

Q2) readlist(filename) 读取文件名列表(每个文件名由 (Q1) 中的 listdir 生成,并将它们组合成一个大列表。(从 Q1 中的文本文件中读取,然后将内容分配到 1 个包含所有信息)

问题是,我只在介绍部分从学校的讲师那里学到,甚至没有显示系统输入或输出示例,甚至没有教授“使用文件”功能。如果知道 sml 的人看到这个,请帮忙。感谢任何努力帮助我的人。

感谢您的回复,目前我正在使用 SMLNJ 尝试执行此操作。基本上,Q1 要求我将提供的“目录名”的目录文件列出到“文件名”中的文本文件中。Q2 要求我从“文件名”文本文件中读取,然后将内容放入一个大列表中。

重复:smlnj listdir

0 投票
1 回答
2982 浏览

smlnj - 在 SML/NJ 中循环文本文件的行

我有这个 SML/NJ 代码,它从文本文件中读取一行,然后它会为我返回一个列表,但是我很难让它对每一行都做同样的事情,并在没有更多行时停止。任何人都可以在这里给我一个循环样本来帮助我吗?

0 投票
2 回答
1386 浏览

sml - 如何自定义 SML/NJ 交互式循环?

我是标准 ML 的新手,我正在尝试了解 SML/NJ 运行时环境。我想让它适应我的需要。具体来说,我想:

  • 默认使用 IntInf
  • 防止它将字符串和 IntInf 截断为 70 个字符。

这是我在 8 多个小时的阅读文档和实验中发现的。

我可以使用命令在 int 之上重载 IntInf

我可以使用变量 Control.Print.stringDepth 控制字符串中显示多少个字符。例如,这将让它在截断之前显示 1000 个字符:

我如何为 IntInf 值做同样的事情?我可以将深度设置为无限(即根本没有截断)吗?

打开 IntInf 是用 IntInf 重载 int 的最佳方法吗?

最后,如何让这一切在运行时自动加载,以便当我调用“sml”时它在我的默认环境中?


编辑:我后来发现有一个名为 Control.Print.intinfDepth 的选项可以设置为一个很大的数字(比如 999999)。不过,我不知道如何使它无限。

我的其他问题仍未得到解答。


编辑:我在 Kansas State 的一个班级遇到了这组 SML/NJ 定制。为了显示我自己的横幅消息并避免显示“val it = true : bool”,我需要测试 SMLofNJ.exportML 的返回值。如果是真的,堆映像刚刚恢复(即启动),我可以显示一条消息。如果为 false,则只是保存了堆映像。

0 投票
1 回答
14698 浏览

sml - 如何在 SML 中的 case 语句中打印?

我刚开始使用 SML,我正在尝试修改一些代码,以便了解它在做什么(我找不到像样的 SML/NJ 调试器,但这是一个单独的问题)。

假设这是有效的代码,因为 constant_int 是已经声明的数据类型的一部分,等等。如何添加打印语句来表示“返回“整数””?我试过:

但我得到:

我想我只是不明白如何执行一系列语句,只有最后一个应该被视为返回值。有什么建议吗?

另外,我将如何打印我自己的数据类型值?当我尝试将数据类型值传递给 print() 时,SML 不喜欢,所以我可能必须为每个数据类型创建一个新的打印函数,对吗?

0 投票
2 回答
2670 浏览

sml - 如何在 SML 中强制类型(如强制转换)

我正在创建 Rationals (int * int) 的结构,我的功能之一是:

gcd 给了我最大的公分母,所以我最终不是 2/8,而是应该是 1/4。gcd 使用 mod 来查找 gcd,因此它返回一个 int。但是我无法将除法表达式输入为 int。当我尝试添加: int * int到 diff 声明的末尾时,它给了我一个类型错误,即表达式 real * real 和 int * int 不匹配。

如何强制整数除法,或将表达式转换为整数?如果两者都可以,那么哪个更好?

0 投票
2 回答
769 浏览

sml - SML 函数调用不会将参数解析为参数

我在调用 SML 函数时遇到了一个优先问题,替代:

我从另一个函数调用它:

但我收到一个错误:

这似乎表明它正在尝试调用(替换 v),然后使用参数 new_var 调用该调用的结果。

我尝试在整个内容周围添加括号,但这没有帮助,当我在参数周围添加括号时,(v new_var...)它认为 v 是 new_var 上的函数应用程序。这个函数调用是怎么回事?