【问题标题】:Can I make SML print each recursion?我可以让 SML 打印每个递归吗?
【发布时间】:2013-01-27 22:58:13
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 请添加您认为对理解您的问题很重要的部分代码。

标签: sml


【解决方案1】:

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

(exp1;exp2;exp3)

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

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

【讨论】:

    【解决方案2】:

    你的意思是这样的吗?

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

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

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 1970-01-01
      • 2021-01-25
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多