def sum(N) { for ( I = 1, S = 0; I <= N; I++ ) S += I; return S; }
これは, 1 から N
までの自然数の和を求める函数 sum()
の
定義である. この例における sum(N)
の N
が引数である.
この例は, 1 引数函数の例であるが, 一般に引数の個数は任意であり,
必要なだけの個数を `,' で区切って指定することができる. 引数は
値が渡される. すなわち, 引数を受けとった側が, その引数の値を変更して
も, 渡した側の変数は変化しない. ただし, 例外がある. それは, ベクトル,
行列を引数に渡した場合である. この場合も, 渡された変数そのものを書き
替えることは, その函数に局所的な操作であるが, 要素を書き換えた場合,
それは, 呼び出し側のベクトル, 行列の要素を書き換えることになる.
def clear_vector(M) { /* M is expected to be a vector */ L = size(M)[0]; for ( I = 0; I < L; I++ ) M[I] = 0; }
この函数は, 引数のベクトルを 0 ベクトルに初期化するための函数である. また, ベクトルを引数に渡すことにより, 複数の結果を引数のベクトルに 収納して返すことができる. 実際には, このような場合には, 結果をリスト にして返すこともできる. 状況に応じて使いわけすることが望ましい.
Go to the first, previous, next, last section, table of contents.