[Lisp処理系を作る] 09日目 FunctionTable を作る

SymbolTable に比べ特殊な処理が無いので、Function で型チェックされた Hashtable な感じになる。

特徴

  • 関数テーブルはローカルではなく全てグローバルなので一つの Env インスタンスに対し 1 つで良い。

実装するメソッド

  • class Env
    • FunctionTable プロパティ
  • class FunctionTable
    • this[string key]
      • アクセスはインデクサでアクセスする。
    • Define( string name, Function value )
      • 関数テーブルに引数の関数を登録する
    • Undefine( string name )
      • 関数テーブルから name に該当する Function を削除する。

これまでの成果