はてなTシャツ2013ができました! プレゼントキャンペーンを実施します - はてな広報ブログ 当たらないですかねえ。 はてなオリジナルTシャツ2012 - はてな 久しぶりの更新がこれってどうなんだろう。でもTシャツ欲しい。 今回は、 (+ 1 (* 2 3) 4) のようなコードを実行できるような実装をしました。 Whileで数値を取って来て、)になったら取ってくるのを辞めるというシンプルな方法です。 これの問題点は、入れ子構造を解釈してくれないため、途中に)があるとそこで中断してしまいます。 そこで、()構造の入れ子の深さを表す変数を用意して、(を通ると+1,)を通ると-1して、その数で判定するようにしました。これで入れ子も使えるようになっています。 まだ構文木の出番ではない。 次は、defineを作って、関数を定義出来るようにしてみようかと思います。構文木と名前テーブルが必要になる