2012-10-11 91 views
-2

想象一个算术表达式,例如(+ 1(* 2( - 3 5)))被认为是一个树状结构,叶子处的数字和内部节点处的运算符号如下:(left-operand operator right-operand)用树表示的算术表达式

我试图写一个函数
(make-expr left-op operator right-op)

产生:

 + 
/ \ 
    1  * 
    /\ 
     2 - 
     /\ 
     3 5 

每个节点都可以通过三个元素的列表来表示210 (left-op operator right-op)

例如: (make-expr '(6 * 3) '+ '(5 -2)) => ((6 * 3) + (5 - 2))

回答

2
> (list '(6 * 3) '+ '(5 - 2)) 
((6 * 3) + (5 - 2) 

是的,这是因为使用list功能一样简单。