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

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

タグの解釈

タグの基本はラベル(マーカー)。型情報としての利用は付随的/二次的であり、ラベルをインスタンス型情報として流用しているに過ぎない。利用可能な範囲も限定的である。

バリデータをvalidateとすると:

  1. 基本は、validate(x, T) Tは型表現
  2. validate(x) → validate(x, tag(x)) と補完する。
  3. tag(x) = t (タグ名)として、tをレジストリから探す
  4. tが見つからないときの処理を細工する
  • validate(x, t)のときは、tが見つからないなら、人間またはプログラムのミスと判断する。
  • validate(x, t = tag(t)) のときは、見つからなくてもエラーとはしない。


function validate(x, schema) {
if (schema) {
validateAgainst(x, schema);
} else {
validateSolely(x);
}
}

function validateSolely(x) {
var t = tag(x);
var schema = findSchema(t); // 名前からなんらかの検証用実体を探す
if (schema) {
return validateAgainst(x, schema);
} else {
true;
}
}