[#42194] Enhancing Numeric#step — "Akinori MUSHA" <knu@...>

 Numeric#step の仕様の拡張を提案します。

26 messages 2010/09/08
[#42196] Re: Enhancing Numeric#step — Yukihiro Matsumoto <matz@...> 2010/09/08

まつもと ゆきひろです

[#42200] Re: Enhancing Numeric#step — "Akinori MUSHA" <knu@...> 2010/09/08

At Wed, 8 Sep 2010 22:46:57 +0900,

[#42204] Re: Enhancing Numeric#step — Yukihiro Matsumoto <matz@...> 2010/09/09

まつもと ゆきひろです

[#42232] 1.9.2 readline can't handle cursorkeys, mbcs chars etc (msvcrt) — arton <artonx@...>

artonです。

11 messages 2010/09/10

[#42269] [Ruby 1.9-Bug#3836] Kernel.system, spawnがスペースを含むパスで動作しない — Hiroki Najima <redmine@...>

チケット #3836 が更新されました。 (by Hiroki Najima)

12 messages 2010/09/16
[#42270] WindowsでのKernel.systemの挙動、一貫性について — NAJIMA Hiroki <h.najima@...> 2010/09/16

名島(Nazy)と申します。

[#42310] ビジースレッドがあるとコンテキストスイッチが起きづらくなる — kuwamoto shintaro <beuniv@...>

こんにちは。

9 messages 2010/09/29
[#42315] [bug:trunk] ビジースレッドがあるとコンテキストスイッチが起きづらくなる — "U.Nakamura" <usa@...> 2010/09/30

こんにちは、なかむら(う)です。

[ruby-dev:42312] Re: Introducing "rb_scan_keyword_args()" (was Re: Re: Enhancing Numeric#step)

From: Yukihiro Matsumoto <matz@...>
Date: 2010-09-29 14:43:47 UTC
List: ruby-dev #42312
まつもと ゆきひろです

In message "Re: [ruby-dev:42308] Re: Introducing "rb_scan_keyword_args()" (was Re:  Re: Enhancing Numeric#step)"
    on Wed, 29 Sep 2010 16:45:38 +0900, "Akinori MUSHA" <knu@iDaemons.org> writes:

|>  * シンボルでなく文字列
|
| メソッド呼び出しごとの rb_intern() のコストはどう考えますか?
|現状の手書き処理ではほぼ漏れなくIDまたはSymbolを事前生成している
|実態に即してIDを取れるようにしたのですが。

もちろん理由は分かります。が、正直Cコードを書く身としては、毎
回internを書くのがイヤです。

| これも、呼び出しごとに切り出しとコピーを含む文字列処理が必要に
|なるのが気になります。

これも、コストと書きやすさのトレードオフですね。私は書きやす
さを優先する傾向があります。両方用意するのがよいのかもしれま
せん。

| 逆に動的生成のキーワード群を扱いたいシーンでも、自前でアロケート
|&コピーする手間が生じて煩わしいのではないでしょうか。
|
| 提案中の仕様は、所与のkeywordを加工せずに渡せる利点があります。
|
|必須引数:
|    rb_scan_keyword_args(opt, "1*", rb_intern(keyword), &val, NULL, &opt);
|
|省略可能引数:
|    rb_scan_keyword_args(opt, "*", rb_intern(keyword), &val, NULL, &opt);

確かにそうですが、動的生成のキーワードを使いたい局面がちょっ
と思いつかないので、これについては積極的に賛成しません。

| なお、わざわざ * を渡さないと残り受け取れない仕様にしてあるのは
|拡張性が念頭にあります。返り値がないのもそうですが、上の例を見ると
|キャプチャーした数を返すのが妥当な気がしてきました。

「* を渡さないと残り受け取れない仕様」には賛成します。

|> を考えていました。あと関数名はrb_scan_keyword_argsじゃなくて、
|> rb_keyword_argsがいいかなあ。
|
| 動詞なしはちょっと…。rb_scan_kwargsくらいに縮めればいいですか?

元々はrb_scan_keywordsでしたね。予約語と混同しそうなのでargs
を追加したのでしょうか。たとえば、私の提案した仕様のものを

  rb_scan_kwargs()

とし、武者さんの仕様のものを

 rb_scan_keyword_args()

として両方提供するというのはどうでしょう?

                                まつもと ゆきひろ /:|)

In This Thread