[Lisp処理系を作る] 04日目 Symbol を作る

Symbol クラスは NIL 作成時に作った ISymbol インターフェイスを実装する。

Symbol の特徴

  • Atom の一つである。
  • 名前を持つ。
  • 特定のオブジェクトを束縛(bind)できる。
    • 束縛を解消することも出来る。
  • nil は Symbol である。

実装

基本的には以下

public class Symbol : Atom, ISymbol {
  private string             name;
  private SymbolicExpression val;

  public Symbol( string name ) : this( name, null ) {}
  public Symbol( string name, SymbolicExpression val ) {
    this.name = name;
    this.val = val;
  }

  public override bool IsNil { get { return this.name == "nil"; } }
  :

後は nil の場合に気をつけて実装すれば良い。