一応、動いた

「一応」と付けたのは動作が遅すぎるため。項を一つ評価するたびにオブジェクトを生成しているし、最適化らしいことは何もしていないし、……。
少なくともSchemeらしい点は

  • 再帰呼び出しをループとして実現⇒末尾再帰でスタックを消費しない
  • レキシカルスコープ

Schemeに足りない点は

  • そもそもprimitiveが揃っていない
  • 完全数・不完全数の区別がない
  • マクロがない(「呼び出し時に引数を評価しない関数」で代用?)