[Gauche-devel-jp] 省略可能引数とデフォルト値

Back to archive index

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













Gauche-devel-jp メーリングリストの案内
Back to archive index