我正在学习Scheme,想要编写一个递归过程,在每个运行级别输出到控制台:
(define (dummy count)
(if (= 0 count)
(runtime)
((display "test" console-i/o-port) (dummy (- count 1)))))
然后测试:
(dummy 10)
但似乎只有最后调用的过程的输出才会被打印出来。 我应该做什么才能实现它?谢谢。 (我正在使用 Mit-scheme)
最佳答案
((display "test" console-i/o-port) (dummy (- count 1)))
这是一个函数调用,其中 (display "test"console-i/o-port)
是应该调用的函数,(dummy (- count 1))
是该函数的参数。由于 `(display "test"console-i/o-port) 实际上并不返回函数,这将导致错误(在打印 test 后)。
要执行您真正想做的事情(首先执行 (display ...)
然后执行 (dummy ...)
),您可以使用 开始
形式如下:
(begin (display "test" console-i/o-port) (dummy (- count 1)))
关于recursion - 在递归过程中显示到输出端口 - 方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646983/