Makoto Satoh
makot****@yahoo*****
2005年 4月 22日 (金) 11:45:55 JST
佐藤です。 > GDではイメージオブジェクトを作った後にそれを破棄する必要がありますが、 > CL-GDにはwith-imageというマクロがあってイメージオブジェクトの生成、 > 破棄をやってくれます。このマクロを移植したいと思っています。 > > このマクロは以下のようなコードです。 > > (defmacro with-image ((name width height &optional true-color) &body body) > (rebinding (width height true-color) > `(with-safe-alloc (,name > (create-image ,width ,height ,true-color) > (destroy-image ,name)) > , @ body))) > > この「&body body」の前に「&optional true-color」がありますが、Gaucheでは > そのままでは書けませんよね? 「 4.3 手続きを作る」http://gauche.sourceforge.jp/doc/gauche-refj_22.html 「注: いくつかのSchemeの実装ではformalsの構文を拡張して、 CommonLispのように 省略可能引数やキーワード引数などの表記を可能にしているものがあります。 Gaucheには今のところそのような拡張はありません。」 ということですね。ということは、別にまったく同じAPIである必要はないので、 使いやすそうで、それでいてCL-GDを使ったことがある場合は容易に機能が 推測できそうなAPIを考えればいいわけですね。