Go to the first, previous, next, last section, table of contents.

### `quote_flatten`

`quote_flatten(q,op)`
  :: quote の括弧をとりさる.

return
  Quote
q
  Quote
op
  演算子を表す文字列.

- Quote 型のデータは木構造をしている ( quotetolist 参照 ). `quote_flatten()` は, q の中にあられる演算子 op の子供ノードを平等にする. つまり演算子 op に関する括弧づけがあった場合それをすべてとりさる. たとえば (1+2)+(3+4) という表現を 1+2+3+4 に変換する.
- 現在の実装では n-ary の演算子は定義されていないので, 1+2+3 は実は (1+2)+3 と表現されている. つまり + 演算子は左結合的である.

    [1288] flatten_quote(quote((1+2)+(3+4*(x+3))),"+");
    quote(1+2+3+4*(x+3))
    [1289] flatten_quote(quote( (x*y)*(p*3)-(x*y)*z),"*");
    quote(x*y*p*3-x*y*z)
    [1290] quotetolist(quote(1+2+3));
    [b_op,+,[b_op,+,[internal,1],[internal,2]],[internal,3]]

`参照`
  @xref{quotetolist}, @xref{print_tex_form}(contrib)

ChangeLog

- この関数は 2004-7-7 から 2004-7-8 にかけて quote に関する操作を研究するために実験的に書かれた. OpenXM/fb で蓄積された公式の不要な括弧をとりはずし, tex 形式に変換するのに 応用.
- 変更をうけたソースコードは builtin/strobj.c 1.47, parse/eval.c 1.35, parse/parse.h 1.31, parse/quote.c 1.14--1.16.

Go to the first, previous, next, last section, table of contents.