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

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

Little Expression Language

たいていのプログラミング言語のなかに埋め込める。

  • 型:numberとboolean
  • リテラル:普通
  • 変数(インフォーマル):a,b,c, x,y,zはnumber、p,q,r,s,tがboolean
  • 名前付き関数と無名関数
  • 算術演算子:+, -, *, %, 単項の-
  • 組み込み関数: sqrt
  • 論理演算子:&&, ||, !
  • 比較演算子: ==, <, >, <=, >=
  • 複合型:配列 orリスト or タプル(なんでもよい)
  • 制御:(? : ) と名前を使った再帰
  • その他:括弧


Object.prototype.toString = function() {
var s = "{";
for (var p in this) {
var v = this[p];
if (v !== undefined && (typeof v) !== 'function') {
s += p + "=" + v + ", ";
}
}
s = s.replace(/, $/, "");
return s + "}";
};

function App(fun, args) {
return fun.apply(null, args);
}

やや一般化した閉包の説明に使える。