[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 言語


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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


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

This document was generated on October 24, 2017 using texi2html 5.0.