当我递归调用它时,我不确定如何将列表转换为函数中的字符串。例如,我的代码如下:
(define (pre-order T)
(define (conv x)
(cond ((number? x) (number->string x))
((char? x) (string x))))
(map-diff (lambda (x) (conv x)) T)
(cond ((null? T) "")
((eq? (value T) #\+)
(cons "+" (pre-order (right T))(pre-order (left T))))
((eq? (value T) #\*)
(cons "*" (pre-order (right T))(pre-order (left T))))
((eq? (value T) #\-)
(cons "-" (pre-order (left T))))
((eq? (value T) #\/)
(cons "/" (pre-order (left T))))
(else (cons (value T) (pre-order (left T))))))
假设我的地图功能可以正常工作。我正在使用树,并且还想知道如何用前缀表示法编写算术分析树。我已经对算术解析树进行了研究,并且我编写了一个可以计算它们的值的函数,但是我不知道如何正确地遍历它们来解决这个问题。