方案 - 显示二叉树

law*_*tud 5 tree scheme

我完全开始了我的 Scheme 职业生涯,最近几天我一直在努力解决代码中的问题。我的任务是编写一个显示二叉树的函数。这就是我到目前为止所做的:

(define (get-pair t) (list (list-ref t 0) (list-ref t 1)))
(define (get-left t) (cadr t))
(define (get-right t) (caddr t))
    (define (print-tree tree) 
      (if (not (null? tree))       
       (begin
          (print-tree (get-left tree))
          (display (get-pair tree))
          (print-tree (get-right tree))
        )
       )
    ) 
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于函数式编程的规则,我不能使用 'list-ref' 命令(就像 'append'、'list tail'、'vector' 等)。我有点卡住了,因此我有一个问题:是否可以交换这部分代码,还是应该重新启动整个功能?