Shiro Kawai
shiro****@lava*****
2003年 2月 19日 (水) 19:33:06 JST
From: Kimura Fuyuki <fuyuk****@hadal*****> Subject: Re: [Gauche-devel-jp] 省略可能引数とデフォルト値 Date: Wed, 19 Feb 2003 11:49:38 +0900 > MATCH database strategy word > > このうちdatabaseとstrategyにはデフォルト値のようなものがあるので、メソッ > ドの引数を省略可能にしたいと思ったわけです。 このへんは操作の性質だとか、使用頻度だとかによって 適したAPIが変わって来そうです。 個人的な好みは、通常の使い方でデフォルトのdatabaseやstrategyを 滅多に意識する必要が無い場合はキーワード引数か別手続き(パラメータ でもよい)ですかね。 逆に、デフォルトのdatabaseやstrategyであっても、意識的にそれを 使う感じなら必須にして指定させた方がよさそうです。 PerlのAPIは、strategyは意識させてdbは意識させないという 切り分けかなあ。 > そうですね。でも実際には前のほうのオプショナル引数を無指定にしたくなる > 場合もあると思います。たとえばstring-joinでgrammerだけ指定したいとか。 > Schemeではキーワードが標準ではないので、ちょっと無理をしてオプショナル > 引数を使っているということでしょうか。 そうですね。キーワード引数を使うのはScheme界ではかなり議論を 呼びそうな気がします。 > (脇にそれますが、マニュアルにはstring-joinのdelimのデフォルトが何であ > るか書いていません) 忘れてました。加えておきます。 > 私も何度か「ここで未初期化値があれば便利なのに」とか思ったことがあるの > ですが、そう簡単に解決するわけがありませんでした。:) 「未初期化」は値でなく状態ですからねえ。 なんでもfirst class valueなSchemeにはちと合わないかも しれません。symbol-bound? とかは一種反則。 --shiro