Go to the first, previous, next, last section, table of contents.
- 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.