以递归过程打印

时间:2017-12-13 23:09:08

标签: scheme racket r5rs

我有一个在面向对象的编程范例中设计的堆栈过程,我的堆栈中的一个嵌套过程是一个打印。由于我的堆栈实际上是一个列表,我可以通过调用全局变量my-stack轻松打印它,但我不想将它打印为列表,我想将它作为堆栈打印在另一个上面,有办法吗?

(define (print)
(define (print-helper stack)
  (if (empty?)'()
      (print-helper (cdr stack))
))
(print-helper my-stack))

1 个答案:

答案 0 :(得分:0)

如果它是一个堆栈,我们想要打印最后添加的元素。这应该可以解决问题:

(define (print)
  (define (print-helper stack)
    (cond ((empty? stack) 'done)
          (else
           (print-helper (cdr stack))
           (display (car stack))
           (newline))))
  (print-helper my-stack))
相关问题