[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5 言語


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.1 get_struct_name, get_element_names, get_element_at, put_element_at

get_struct_name(s)
get_element_names(s)
get_element_at(s,key)
put_element_at(s,key,obj)

:: 構造体 s に対する操作

return

文字列 (get_struct_name), 文字列のリスト (get_element_names), オブジェクト (get_element_at), オブジェクト (put_element_at)

s

構造体

key

文字列

obj

オブジェクト

[219]  struct point { x, y, color};
[220]  P = newstruct(point);
{0,0,0}
[221]  P->x = 10$ P->y=5$ P->color="red"$
[222]  get_element_names(P);
[x,y,color]
[223] put_element_at(P,"color","blue");
blue
[224] P->color;
bule
参照

@ref{newstruct}, @ref{struct}

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.2 mapat

mapat(fname,pos[,arg0, arg1, ...])

:: pos に対する map 関数

return

オブジェクト

pos

整数

arg0, arg1, arg2, ...

オブジェクト

[219] mapat(deg,1,x^2+y^3+x+y,[x,y]);
[2,3]
[220] mapat(subst,1,x+y+z,[x,y,z],2);
[y+z+2,x+z+2,x+y+2]
参照

@ref{map}

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.3 list

list([arg0, arg1, ...])

:: list を生成する.

return

リスト

arg0, arg1, arg2, ...

オブジェクト

[219] list(1,2,3);
[1,2,3]
[220] list(1,2,[3,4]);
[1,2,[3,4]]
参照

@ref{cons}

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.4 assoc

assoc(a,b)

:: 連想リストをつくる

return

List

a

List

b

List

下の例では A に動物の名前が, B に足の本数が入っている. assoc(A,B) で動物と足の本数をペアにしたリストを生成する.

[1192]  A=["dog","cat","snake"];
[dog,cat,snake]
[1193] B=[4,4,0];
[4,4,0]
[1194] assoc(A,B);
[[dog,4],[cat,4],[snake,0]]
参照

@ref{cons}, @ref{append}

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.5 set_secure_flag, set_secure_mode

set_secure_flag(fname,m)
set_secure_mode(m)

:: 関数の実行権限を設定する. (web サービス用)

return

整数

fname

文字列

m

整数

[1194] set_secure_flag("print_input_form_",1);
1
[1195] set_secure_flag("fctr",1);
1
[220] set_secure_mode(1);
1
[1197] fctr((x-1)^3);
[[1,1],[x-1,3]]
[1198] fctr(shell("ls"));
evalf : shell not permitted
return to toplevel
参照

@ref{timer}

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.6 initialize_static_variable

static 変数の初期化の問題点. 初期化の時に segmentation fault がおきる.
if (1) {
 module abc;
 static A;
 A=1;
 endmodule;
} else { };

end$
を t.rr とするとき,

[6] load("./t.rr");
1
internal error (SEGV)
となる.

t.rr を
if (1) {
 module abc;
 static A;
 localf initA;
 localf foo;
 def initA() {
   A=1;
 }
 initA();
 def foo() {
   return A;
 }
 endmodule;
} else { };

end$
とすると正しく初期化される.

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

2.5.7 function

function 宣言することにより函数形式の不定元を生成できる.
function 宣言することにより函数形式の不定元を生成できる.
微分函数 diff はこの函数形式の不定元の微分をやはり函数形式の不定元として生成する.

たとえば f{1,2}(x,y) は f を x について一階偏微分, y について 2階偏微分したもの.

diff は合成関数としての処理も行う.
[1915] function f(x,y);
[1916] F=f(f(x,y),y)$
[1917] diff(F,y);
f{1,0}(f(x,y),y)*f{0,1}(x,y)+f{0,1}(f(x,y),y)
[1918] vtype(f(p,q));
2
[1919] deg(diff(F,y),f{0,1}(x,y));
1

@xref{vtype} @xref{diff}

ChangeLog


[ << ] [ < ] [] [ > ] [ >> ]

この文書は3月 29, 2024texi2html 5.0を用いて生成されました。