[#41918] [Feature #3647] Array#sample(n, replace=false) — Kenta Murata <redmine@...>

Feature #3647: Array#sample(n, replace=false)

11 messages 2010/08/03

[#41966] [Bug #3673] PTY.getpty with IO.pipe doesn't finish on FreeBSD — Yui NARUSE <redmine@...>

Bug #3673: PTY.getpty with IO.pipe doesn't finish on FreeBSD

9 messages 2010/08/10

[#41969] [Feature #3675] String#prepend, String#>> — Sora Harakami <redmine@...>

Feature #3675: String#prepend, String#>>

15 messages 2010/08/10
[#41976] Re: [Feature #3675] String#prepend, String#>> — Yukihiro Matsumoto <matz@...> 2010/08/10

まつもと ゆきひろです

[#41974] Re: [ruby-cvs:36157] Ruby:r28955 (trunk): * complex.c (nucomp_to_[ifr]): don't allow complex with in-exact — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

7 messages 2010/08/10

[#42003] WEBrickに関するセキュリティ修正 (CVE-2010-0541) — Hideki Yamane <henrich@...>

12 messages 2010/08/11

[#42090] Math::atan2(0, 0) on ruby 1.9.2 — KUBO Takehiro <kubo@...>

久保です。

18 messages 2010/08/22
[#42092] Re: Math::atan2(0, 0) on ruby 1.9.2 — Kenta Murata <muraken@...> 2010/08/22

=1B$B$`$i$?$G$9!#=1B(B

[#42166] Ruby'sライセンスの、BSDLとのデュアルライセンスへの変更 — "NARUSE, Yui" <naruse@...>

Ruby's ライセンスは BSDL と Ruby's のデュアルライセンスになります。

14 messages 2010/08/31

[ruby-dev:42061] Re: [Feature #3675] String#prepend, String#>>

From: "Akinori MUSHA" <knu@...>
Date: 2010-08-18 04:31:13 UTC
List: ruby-dev #42061
At Tue, 10 Aug 2010 22:23:13 +0900,
matz wrote:
> |なので, String#prependと String#>> を追加するというのはどうでしょうか.
>
> 非常に興味深いです。ただ、いくつか気になる点があります。
>
> (1) 実装上のことですが、appendと異なり、prependは、文字列領域
>     を拡張した上で、現在の文字列の内容をコピーし、それから引
>     数の内容を先頭からコピーすることになります。つまり、
>
>      a = "foo" + a
>
>     と比較して、コストはオブジェクトアロケーションひとつしか
>     変わりません。それが本当にうれしいかやや疑問です。もっと
>     も長い目で見るとGCへの負荷が軽いというメリットが出るケー
>     スもあるでしょう。

今でもオブジェクト生成を避けたいのなら

    a[0,0] = "foo"

でいいはず。

もちろん、若干遅いでしょうが正規表現を使うのもあり。

    a[/^/] = "foo"	# ふつうの人
    a[/\A/] = "foo"	# 報われない原理主義者
    a[//]="foo"		# ゴルファー

> (2) >> というのは考えてもみなかった面白い記法です。しかし、
>     現状の文字列のメソッドで、引数のほうに破壊的な変更を加え
>     るメソッドはなかったように思うので、やや躊躇します。もっ
>     とも、Stringクラスでなければ、引数に破壊的な変更を加える
>     メソッドはいくつもあるので、気にすることではないのかもし
>     れません。

String#>> だと、レシーバが文字列かそのサブクラスのインスタンス
限定になるので #to_str を持った文字列もどきはダメということに
なりますね。x.to_str + s も切なくて "#{x}s" としたりもするので、
s が殿様な感じがする x.to_str >> s は嫌かも(笑)。

--
Akinori MUSHA / http://akinori.org/

In This Thread