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回リストを舐めている。これが非常に効率が悪い気がする。
遅く感じるまで、放置でいいのかな。