想象一个算术表达式,例如 (+ 1 (* 2 (- 3 5))) 被认为是一个树状结构,其叶子为数字,内部节点为运算符符号,如下所示:
+
/ \
1 *
/ \
2 -
/ \
3 5
每个节点可以由一个三元素列表表示:(left-operand operator right-operand)
我正在尝试编写一个函数
(make-expr left-op operator right-op)
产生
(left-op operator right-op)
例如:
(make-expr '(6 * 3) '+ '(5 -2)) => ((6 * 3) + (5 - 2))