我完全开始了我的 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' 等)。我有点卡住了,因此我有一个问题:是否可以交换这部分代码,还是应该重新启动整个功能?