算术表达式表示为树

时间:2012-10-11 06:29:39

标签: scheme racket

想象一个算术表达式,例如(+ 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))

1 个答案:

答案 0 :(得分:2)

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

是的,它就像使用list函数一样简单。