[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:1662

From: 5 5 <redmine@r...>
Date: Tue, 25 Aug 2009 15:57:09 +0900
Subject: [ruby-reference-manual:1662] [Bug #1994] Enumerable#each_cons の説明

Bug #1994: Enumerable#each_cons の説明
http://redmine.ruby-lang.org/issues/show/1994

起票者: 5 5
ステータス: Open, 優先度: Normal
カテゴリ: doc
reporter: 5.5, ruby_version: 1.8, 1.9

Enumerable#each_cons の説明が
 要素を重複ありで n 要素ずつに区切り、ブロックに渡して繰り返します。
となっていますが,each_slice と違って,区切るわけではないので,日本語としておかしいです。
each_cons を言葉だけで表現するのは難しいですが,たとえば
 連続する n 個の要素を先頭から順にブロックに渡して実行します。Enumerable#each_slice と違って,渡される要素には重複があります。繰り返しの数は 要素数-n+1 回となります。
 ブロックが与えられなかった場合は,対応する Enumerator オブジェクトを返します。
とかで如何でしょうか。

実行例は,Enumerable#each_slice と対比する意味で,Enumerable#each_slice の実行例に合わせ,[1, 2, 3, 4, 5] ではなく 1..10 に対して呼び出すようにしたほうがより良いと思います。

[PARAM] n の説明は
 ブロックに渡す要素の数です。正の整数を与えます。要素数より大きな n を与えると,ブロックは一度も実行されません。
とかで如何でしょうか。

実行例として,1万までの双子素数を見出す以下のようなスクリプトを挙げるのは蛇足すぎますか?
 if RUBY_VERSION>="1.9.0"
   require 'prime'
   prime=Prime.instance
 else
   require 'mathn'
   prime=Prime.new
 end
 prime.each_cons(2) do |x, y|
   break if y>10000
   puts format("%4d, %4d", x, y) if x+2==y
 end


----------------------------------------
http://redmine.ruby-lang.org

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    1662 2009-08-25 08:57 [redmine@r...        ] [Bug #1994] Enumerable#each_cons の説明 
      2329 2010-06-26 08:57 ┗[redmine@r...        ] [Bug #1994][Closed] Enumerable#each_cons の説明