【发布时间】:2017-04-08 20:26:38
【问题描述】:
我得到了 print sub (A 3333) (A 4444),但我想不出两者都打印出来 子 (A 3333) (A 4444) 加 (R 0) (R 1)
(define tree '("S" ( ("-"("A" 3333 )("A" 4444))) ("W" (("+" ("R" 0) ("R" 1))))))
(define (OperandNode on)
(display on))
(define (TwoOperandNode x)
(car x)
(if(equal? (car x) "-")
((display "sub")
(OperandNode (cadr x))
(OperandNode (caddr x)))))
(TwoOperandNode (caadr tree))
(define (WhileNode h)
(car h)
(if(equal? (car h) "+")
((display "add")
(WhileNode (cadr h))
(WhileNode (caddr h)))))
(WhileNode (caaadr tree))
【问题讨论】:
-
括号不用于分组。既然您使用的是 Racket,请让 DrRacket 为您缩进您的代码。