1

我想知道是否有任何方法可以让 SML 打印每个递归?我编写的函数有问题,这将非常有帮助!

如果重要的话,我正在使用 Emacs。

谢谢!

4

2 回答 2

3

您可以在 sml 中连续使用多个表达式,方法是在它们之间放置分号并用括号括住整个事物,如下所示:

(exp1;exp2;exp3)

最后一个表达式的结果是唯一被保留的——其他的只是被丢弃。但是,您可以有一个带有副作用的表达式,例如打印,然后是您真正想做的事情。

fun useless x = (print "Hey, there\n";x+2)
于 2013-01-27T14:58:13.440 回答
1

你的意思是这样的吗?

fun annotatedFold _ y []        = (print "base case\n"; y)
  | annotatedFold f y (x :: xs) = (print "recursive case\n"; annotatedFold (f x y) xs)

(尽管老实说,如果可能的话,我会尝试将打印逻辑放入 中f

于 2013-01-27T05:29:08.873 回答