[Lisp処理系を作る] 02日目 List を作る

List クラスを実装します。

インスタンス変数

  • readonly SymbolicExpression car
  • readonly SymbolicExpression cdr

ポイントは readonly 。コンストラクタでのみ設定可能で、あとでは変更が出来ない。

メソッド

  • SymbolicExpression Car { get; }
  • SymbolicExpression Cdr { get; }
  • int Size { get; }
    • 自身が Nil の場合は 0 を返却
    • cdr が List でない場合は 1 を返却
    • それ以外は Cdr の Size に 1 を足した値
  • bool IsNil { get; }
    • car cdr 共に Nil の場合に true を返却する。