[Gauche-devel-jp] Re: CommonLisp の defmacro の &body 相当について

Zurück zum Archiv-Index

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を考えればいいわけですね。





Gauche-devel-jp メーリングリストの案内
Zurück zum Archiv-Index