OCamlでScheme

SchocaというOcamlで書かれたScehmeインタプリタがあるので、使ってみる。
GODIを使えば簡単にインストールできる。
どうやら、ちゃんとしたドキュメントはなく、examples/にある例をよめ、ということらしい。
で、その例を読んだところ、

  • Schemeのデータ型はScmTypes.string_of_datumで文字列に換えれる
  • 環境はScmEval.init_environmentで作れる
    • 変数とかを追加できるみたいだが、詳しくは不明
  • ScmSchoca.parse_stringで実行できる

といったところ。
というわけで、動作させるためのコードはこんな感じになる。

#use "topfind";;
#require "schoca";;

let scheme_code = "(display \"Hello,World!!\")(newline)";;

let run code = 
    let env = ScmEval.init_environment () in
      ScmSchoca.parse_string env code;;

let main () = print_string (ScmTypes.string_of_datum (run scheme_code));;