###imagemagickをAllegroから使うという例ですが、これの使用例とか眺めるとif*を使っていたりしてFranzでは連綿とFranz Lisp的書法を受け継いでるのかなーとか思ってしまいました。大文字/小文字を区別するのも囲い込みを意図しているんじゃなくて、区別してたFranz Lispからの伝統なんじゃないのかしら。
#if*は見やすいとは思わないのだけれどなあ…
#ですね、Franz系のコード以外で使われてるのを見たことがないので、あまり人気もない気がします :)
#(if bcdp ;-- bcdcall
then (d-pushargs args)
(setq c (length args))
(d-bcdcall c)
elseif fl-tran ;-- transfer table linkage
then (d-pushargs args)
(setq c (length args))
(d-calltran name c)
(putprop name t g-stdref) ; remember we've called this
else ;--- shouldn't get here
(comp-err " bad args to d-callbig : "
(or name args)))
#Franz Lisp時代のちゃんとインデントされたコードだとこういう感じなのですが、インデント次第ではどうにかなるのかもと思いました。viだと編集しやすかったりするのかしら。
#(cond [bcdp ;-- bcdcall
(d-pushargs args)
(setq c (length args))
(d-bcdcall c)]
[fl-tran ;-- transfer table linkage
(d-pushargs args)
(setq c (length args))
(d-calltran name c)
(putprop name t g-stdref)] ; remember we've called this
[else ;--- shouldn't get here
(comp-err " bad args to d-callbig : "
(or name args))])
#でもいいような… (あ、角カッコはSchemeだからCLerの人は嫌かも)
#全部丸括弧だと、条件が埋もれて目立たなくなる、ってことはあるかなあ。
#なるほど! たしかに。Franz Lispだと標準で[]は()の代りに使えるようなので(]はスーパー括弧としても使えたような)実際にこれでOKな気がするんですが何故condじゃなかったのか謎ですね。単に作製者のJohn Foderaroさんの趣味だったりするのかもw