Recursion 在递归过程中显示到输出端口-方案

Recursion 在递归过程中显示到输出端口-方案,recursion,scheme,mit-scheme,Recursion,Scheme,Mit Scheme,我正在学习Scheme,希望编写一个递归过程,在每个运行级别向控制台输出: (define (dummy count) (if (= 0 count) (runtime) ((display "test" console-i/o-port) (dummy (- count 1))))) 然后用以下方法进行测试: (dummy 10) 但似乎只有最后调用的过程的输出才会被打印出来。 我该怎么做才能让它发生?谢谢(我正在使用麻省理工学院计划

我正在学习Scheme,希望编写一个递归过程,在每个运行级别向控制台输出:

(define (dummy count)
    (if (= 0 count)        
        (runtime)
        ((display "test" console-i/o-port) (dummy (- count 1)))))
然后用以下方法进行测试:

(dummy 10)
但似乎只有最后调用的过程的输出才会被打印出来。 我该怎么做才能让它发生?谢谢(我正在使用麻省理工学院计划)

这是一个函数调用,其中
(显示“test”控制台i/o端口)
是应该调用的函数,
(dummy(-count 1))
是该函数的参数。由于`(显示“测试”控制台i/o端口)实际上不返回函数,这将导致错误(打印测试后)

要执行实际需要执行的操作(首先执行
(显示…
,然后执行
(虚拟…
),可以使用
开始
表单,如下所示:

(begin (display "test" console-i/o-port) (dummy (- count 1)))

如果要执行的操作是显示“test”
count
次数(示例中为10次),则可以执行类似操作(假设
count
为正):


你到底想展示什么?计数的当前值是多少?或者“测试”
count
次数?是的,只有“测试”这个词。没关系,对吧。我只想知道为什么只有一个单词“test”打印出来。好的,看看我下面的答案,它就是这样做的,以一种简单的方式感谢你的答案。所以在scheme中,这个构造(abc..D),a的所有内容都必须是这样的:a是一个函数,其余的是参数。为什么我仍然在SCIP书籍中看到类似((打印a)(打印b))的程序?。
(begin (display "test" console-i/o-port) (dummy (- count 1)))
(define (dummy count)
  (if (> count 0)
      (begin 
        (display "test" console-i/o-port)
        (dummy (- count 1)))))