1.1.3 `mathematica.rtomstr'
---------------------------

mathematica.rtomstr(T)
     ::  T をなるべく Mathematica の理解可能な文字列に変える.

RETURN
     文字列

T
     オブジェクト

   *    T をなるべく Mathematica が理解できる形の文字列に変換する.
     たとえば, `asir' ではリストを `[', `]' で囲むが,    Mathematica
     では `{', `}' で囲む.     この関数はこの変換をおこなう.

     [259] mathematica.rtomstr([1,2,3]);
     {1,2,3}
     [260] mathematica.rtomstr([[1,x,x^2],[1,y,y^2]]);
     {{1,x,x^2},{1,y,y^2}}
   もう一つ例をあげよう.  次の関数 `mathematica.inverse(M)' は `ox_math'
をよんで行列 `M' の逆行列を計算する関数である.
`mathematica.inverse(M)' は次のように `r_tostr(M)' を用いて asir
の行列を Mathematica 形式に変換してから `ox_execute_string' で
Mathematica に逆行列を計算 させている.
     def inverse(M) {
       P = 0;
       A = mathematica.rtomstr(M);
       ox_execute_string(P,"Inverse["+A+"]");
       B = ox_pop_cmo(B);
       C = mathematica.tree_to_string(B);
       return(eval_str(C));
     }

     [269] M=[[1,x,x^2],[1,y,y^2],[1,z,z^2]];
     [[1,x,x^2],[1,y,y^2],[1,z,z^2]]
     [270] A=mathematica.inverse(M)$
     [271] red(A[0][0]);
     (z*y)/(x^2+(-y-z)*x+z*y)

参照
     `ox_execute_string', `ToExpression'(Mathematica),
     `mathematica.tree_to_string'

