if文サポート
http://github.com/mzp/scheme-abc/commit/e54efa5c0092f49ae892cb15a14fa67816d89099
if文が使えるようになった。正確にはif式だけれども。
$ cat example/bool.scm (if (< 1 42) (print "big") (print "small")) $ ocamlbuild main.byte -- example/bool.scm $ avmplus a.abc big
これを実現するために、バックパッチングをするようにしたんだけど、これでいいのか自信がない。破壊的な操作をしたくないから、ラベルを集めるためと、ラベルを数字に置き換えるための2回リストを舐めている。これが非常に効率が悪い気がする。
遅く感じるまで、放置でいいのかな。