next up previous contents index
Next: 一般的な可変長引数関数 Up: 可変長引数関数 Previous: 可変長引数関数

リストを利用した可変長引数関数

リストを利用して,可変長の引数をもつ関数を定義することができる。 可変長の引数を持つ関数の例として,引数として渡された行列の和を返す関数 を以下に示す。ただし,引数の行列の大きさは,全て等しいと仮定している。

  Func Matrix sum_mat(args)
    List args;
  {
    Integer i, argn;
    Matrix ss;

    argn = length(args);
    ss = args(1, Matrix);
    for (i = 2; i <= argn; i++) {
      ss = ss + args(i, Matrix);
    }
    return ss;
  }


可変長の引数を持つ関数を呼び出す時は,渡したい引数から1つのリストを作り, それを引数として渡す。 関数sum_mat()の呼び出しは,次のようになる。


  a = [[1 0][0 1]]; b = [[1 2][3 4]];
  c = [[4 3][2 1]]; d = [[0 1][1 0]];
  print sum_mat({a, b, c, d});




Masanobu KOGA 平成10年8月19日