-2

(+ 1 (* 2 (- 3 5))) のような算術式が、以下のように葉に数字があり、内部ノードに演算子記号があるツリーのような構造と考えられていると想像してください。

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

各ノードは、次の 3 つの要素リストで表すことができます。(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))

4

1 に答える 1

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

はい、list関数を使用するのと同じくらい簡単です。

于 2012-10-11T06:37:55.063 に答える