Scheme on Java

正月にでも真面目に実装してみようかな。という訳でその方針を考えてみる。

  • Schemeベース
    • データ型、ペア、……など、Scheme Nativeな要素はそれぞれ一つのクラスとして実装
  • Scheme-Java接続
    • Java Nativeなオブジェクトは関数として扱う*1
    • Javaのprimitive値はScheme Nativeな要素に相当
      • boolean=真理値
      • int,double=数値
      • char=文字
      • 配列=ベクタ
      • null=()?
    • javassistでcompile?
  • 拡張するなら
    • 強い型検査
    • 自動型付け
    • 関数本体や引数について評価順を指定するようにしてマクロを代替*2

*1:SchemeでOOをするときに一般的な手法に倣う。←勘違いだったかも。

*2:Merd方式に近い。読み込み時に展開するようなマクロはReader部にプラグインとして追加していく感じか。