“圆形” SML 中的函数声明
我想以“循环”方式使用函数,如以下示例所示: fun cll1 (s)= cll2(s); fun cll2 (s)= cll3(s); fun cll3 (s)= cll(s); 编写此代码会在 SML 中产生错…
用值填充 ML 中的普通二叉树
让我们说: datatype bin_tree = Empty | Node of value * bin_tree * bin_tree 我将如何填充二叉树(不是左比根小而右比根大的二叉搜索树)。只是插…
SML二叉树reduce函数
我收到了 SML 的作业,并且需要一些入门帮助。 问题是这样的 编写一个类型为“a btree ->”的函数 btree_size返回 int 二叉树的大小。 (二叉树的大小…
SML-NJ,如何编译独立可执行文件
我开始学习Standard ML,现在我尝试使用新泽西编译器的Standard ML。 现在我可以使用交互式循环,但是如何将源文件编译为独立的可执行文件? 例如,在…
增加 SML/NJ 中的打印深度
我正在尝试让 SML/NJ 在顶层打印出结果,而无需 到处都放#号。 根据一些旧文档(以及 2001 年发布到该新闻组的帖子), 应该可以使用 Compiler.Contro…
SML 中函数的类型
谁能向我解释为什么下面给出的函数类型是 ('a * 'b -> 'b) -> 'b-> '列表-> 'b? 函数是: fun foldr f b [] = b | foldr f b (x::xs) = f (x, (foldr…
如何检测ml-lex中的eof
在 ml-lex 中编写代码时 我们需要写eof函数 val eof = fn () => val eof = fn () => EOF; 这是必要的部分吗? 另外,如果我希望我的词法分析器在检测…
使用 ml-lex 构建词法分析器
我需要创建一个与标准输入流绑定的 lexer 的新实例。 但是,当我输入时, val lexer = makeLexer( fn n => inputLine( stdIn ) ); 我收到一个我不明白…
输出在 REPL 中被 # 符号截断
我编写了一个按预期工作的函数,但我不明白为什么输出是这样的。 功能: datatype prop = Atom of string | Not of prop | And of prop*prop | Or of …
有类似 Haskell/ML 的 C 编译器吗?
人们已经编写了Scheme 中适用于 iPhone 的游戏。因为(一些)Scheme 编译器编译为 C,所以很容易与 Objective-C 混合并与 XCode 集成。 我知道Haskell…