この版の gnuplot では、標準的な gnuplot コマンドのブロックを呼び出して
関数として使える機能を導入しています。関数ブロックは、0 から 9 個の引
数を使えて、一つの値を返します。関数ブロックは、計算した新しい値を変数
に割り当てたり、異なる関数や演算子を結合したり、与えられたデータに対す
る繰り返しの作業を行ったりするのに使うことができます。
この仕組みには、3 つの要素があります。
以下参照: local (96), scope (26), function blocks (89), return (110)。
- 修飾子 local は、変数や配列のオプション宣言で、そのスコープは、そ
れが書かれているプログラム単位の実行中のみに制限されます。単位とは、
現在は、load や call 文の実行単位、関数ブロック評価、そして if,
else, do for, while に続く中かっこで囲まれたコードブロック単位
です。局所 (local) 変数の名前が大域 (global) 変数の名前とぶつかる場
合は、その局所スコープから抜けるまでは大域変数は隠されます。
- コマンド function は、gnuplot コマンドからなる名前付き関数ブロック
(実際はある文字列の配列) を宣言します。関数ブロックを呼び出すと、そ
のコマンドが、ブロックの最後になるか、または return コマンドに当た
るまで、順次実行されます。
- コマンド return <expression> は、関数ブロックの実行を終了します。
式 <expression> の評価の結果が、その関数の値として返されます。関数ブ
ロックの外では、どこでも return は exit と同様に動作します。
この仕組みを使って、単純な一行の関数定義 f(x) = ... よりもっと複雑で
自明ではない関数を定義し、描画する例として、function_block.dem を参
照してください。
竹野茂治@新潟工科大学
2024-02-26