我想知道是否有任何方法可以让SML打印每个递归出来?我对我编写的函数有问题,这将非常有用!
如果重要的话,我正在使用Emacs。
谢谢!
答案 0 :(得分:3)
你可以在sml中连续使用几个表达式,在它们之间放置分号并用括号括起整个事物,如下所示:
(exp1;exp2;exp3)
最后一个表达式的结果是唯一保留的结果 - 其他表达式被丢弃。但是,你可以使用带有副作用的表达式,例如print,然后是你真正想要做的事情。
fun useless x = (print "Hey, there\n";x+2)
答案 1 :(得分:1)
你的意思是这样吗?
fun annotatedFold _ y [] = (print "base case\n"; y)
| annotatedFold f y (x :: xs) = (print "recursive case\n"; annotatedFold (f x y) xs)
(尽管如此,我会尽量将打印逻辑放在f
中,如果可能的话)