種々の文法をサポート - Scheme VM を書く

良く使われる文法をサポート。
多くがコンパイル時のコード変換で出来るので楽。
let/let*/cond あたりがサポートされると本物っぽくなるね。

  • null?
    • accumulator に置かれたものが '() かどうか。
  • car/cdr/cons/set-cdr!/set-car!
    • instruction
  • begin
    • コード変換
    • (begin a b ...) => ( (lambda () a b ...) )
  • vector
  • define (a b)
    • コード変換
  • let
    • コード変換。lambda式 の入れ子
  • let*
    • コード変換。lambda式 の入れ子
  • cond
    • コード変換。if の入れ子。例の => もサポートしたぜ。
  • named let
    • コード変換。