Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以让SML打印每个递归吗?_Sml - Fatal编程技术网

我可以让SML打印每个递归吗?

我可以让SML打印每个递归吗?,sml,Sml,我想知道是否有任何方法可以让SML打印出每个递归?我写的一个函数有问题,这将非常有帮助 如果重要的话,我正在使用Emacs 谢谢 你的意思是这样的吗 fun annotatedFold _ y [] = (print "base case\n"; y) | annotatedFold f y (x :: xs) = (print "recursive case\n"; annotatedFold (f x y) xs) (尽管,老实说,如果可能的话,我会尝试将打印逻辑放在f中

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

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


谢谢

你的意思是这样的吗

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

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

你的意思是这样的吗

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

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

在sml中可以有多个表达式,方法是在它们之间放分号,并用括号将整个表达式括起来,如下所示:

(exp1;exp2;exp3)
最后一个表达式的结果是唯一被保留的表达式,其他表达式则被丢弃。然而,你可以有一个带有副作用的表达式,比如打印,然后是你真正想做的事情

fun useless x = (print "Hey, there\n";x+2)

在sml中,可以将多个表达式放在一行中,方法是在它们之间放置分号,并用括号将整个表达式括起来,如下所示:

(exp1;exp2;exp3)
最后一个表达式的结果是唯一被保留的表达式,其他表达式则被丢弃。然而,你可以有一个带有副作用的表达式,比如打印,然后是你真正想做的事情

fun useless x = (print "Hey, there\n";x+2)

请把你认为重要的代码的一部分添加到你的问题的理解中。请把你认为重要的代码的一部分添加到你的问题的理解中。