このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

特有な概念とジャーゴン:抽出と挿入

データオブジェクトを「変数」と呼ぶ。変数に型はないが、整数変数のように言う。これは整数(行列)オブジェクトを意味している。「変数」はデータオブジェクトと読み替えるとよい。

型は type(a) とか typeof(a) で確認できる。type(a) で出てくる番号が内部的なデータ型(種類)、typeof(a) はその人間可読形式。typeof(a, "overload") でオーバーロードで使う型コード名も出してくれる。

抽出と挿入も独特:

  • 抽出構文(extraction syntax) b=a(i1, ..., in)
  • 挿入構文(insertion syntax) a(i1, ..., in)=b

抽出は適用・アクセッサと、その結果の変数への代入。挿入はその逆操作でオブジェクト状態を変更する。

aは適用が意味を持つオブジェクト、関数とは限らない。Scilabではインデキシングやメソッド呼び出しも適用。適用可能オブジェクト(applicable object)とでも呼べばいいのか。

適用構文は、あるオブジェクトの部分データを取り出すように思える。引数がロケーター/ロケーティブなわけだ。よって抽出。逆の操作は、あるオブジェクトの部分データを別な部分データで置換すること。置換なのだが何故か挿入と呼ぶ。「挿入」は追加の意味ではないが、追加にも使えることはある。抽出・挿入はgetter/setterとも似てる。

オブジェクトへの抽出・適用は、オブジェクトのユーザー定義型(タグ)とその型に対するオーバーロードにより実現される。特にmlist型データは、それへのアクセスとして、オーバーロードにより抽出と挿入を使う。