COMMON LISP JP > Archives > 2009/05/23

2009/05/23 08:31:38 UTCg000001
#
http://img.f.hatena.ne.jp/images/fotolife/g/g000001/20090218/20090218111740.gif
#
http://www.franz.com/support/tech_corner/imagemagick052109.lhtml
#
imagemagickをAllegroから使うという例ですが、これの使用例とか眺めるとif*を使っていたりしてFranzでは連綿とFranz Lisp的書法を受け継いでるのかなーとか思ってしまいました。大文字/小文字を区別するのも囲い込みを意図しているんじゃなくて、区別してたFranz Lispからの伝統なんじゃないのかしら。
2009/05/23 09:13:04 UTCshiro
#
if*は見やすいとは思わないのだけれどなあ…
2009/05/23 09:48:43 UTCg000001
#
ですね、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)))
2009/05/23 09:55:38 UTCg000001
#
Franz Lisp時代のちゃんとインデントされたコードだとこういう感じなのですが、インデント次第ではどうにかなるのかもと思いました。viだと編集しやすかったりするのかしら。
2009/05/23 10:08:37 UTCshiro
#
(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の人は嫌かも)
#
全部丸括弧だと、条件が埋もれて目立たなくなる、ってことはあるかなあ。
2009/05/23 12:11:18 UTCg000001
#
なるほど! たしかに。Franz Lispだと標準で[]は()の代りに使えるようなので(]はスーパー括弧としても使えたような)実際にこれでOKな気がするんですが何故condじゃなかったのか謎ですね。単に作製者のJohn Foderaroさんの趣味だったりするのかもw