[#39464] Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

25 messages 2004/04/01
[#39608] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

遅い反応&File.fnmatchは使った事ない&ruby-devの方では

[#39609] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

File.fnmatch(と Dir.glob)をちょっと使ってみたのですが、

[#39610] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/02

山本です。

[#39611] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/02

まつもと ゆきひろです

[#39613] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[#39616] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/02

まつもと ゆきひろです

[#39620] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/03

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[#39621] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/03

まつもと ゆきひろです

[#39622] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/03

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[ruby-list:39590] Re: ruby-ver? 配列のランダム化

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2004-04-25 09:44:57 UTC
List: ruby-list #39590
山本です。

shintani kiyonori <k_shin@popsvr.tokai.jaeri.go.jp> wrote:
(2004/04/25 17:10)

>class Array
>  def randomize!
>    result = collect{ slice!(rand(length)) }
>     replace result
>  end
>
>  def randomize
>     arr=self.dup
>     arr.randomize!
>     arr
>  end
>end
> tt=[1,2,3,4,5,6,7,8] #8.sequence
>p tt
>p tt.randomize
>-----
>(結果)
>[1, 2, 3, 4, 5, 6, 7, 8]   <--元
>[5, 7, 1, 8]               <---ランダム化 ???

Enumerable#collect のブロックで要素数を変えてしまったり、
Enumerable#find のブロックで先頭要素を書き換えたりというのは
未定義だと思うので、避けたほうがいいと思います。

こんなのはどうでしょうか。(1.7以降)

class Array
  def randomize
    sort_by{ rand(100) }
  end

  def randomize!
    replace randomize
  end
end

tt=[1,2,3,4,5,6,7,8] #8.sequence

p tt
p tt.randomize

これなら安全だと思います。


In This Thread