種類
- インスタンスメソッド (44)
- 文書 (17)
- クラス (8)
ライブラリ
- ビルトイン (52)
モジュール
- Enumerable (44)
キーワード
- Lazy (8)
-
NEWS for Ruby 2
. 3 . 0 (9) -
NEWS for Ruby 2
. 4 . 0 (8) -
slice
_ before (22) -
slice
_ when (11)
検索結果
先頭5件
-
Enumerable
# chunk _ while {|elt _ before , elt _ after| . . . } -> Enumerator (18260.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
...素を前から順にブロックで評価し、その結果によって要素をチャンクに分け
た(グループ化した)要素を持つEnumerator を返します。
隣り合う値をブロックパラメータ elt_before、elt_after に渡し、ブロックの
評価値が偽になる所......rn チャンクごとの配列をブロックパラメータに渡す Enumerator
を返します。eachメソッドは以下のように呼び出します。
//emlist{
enum.chunk_while { |elt_before, elt_after| bool }.each { |ary| ... }
//}
to_a や map などのその他の Enumer......ドも有用です。
//emlist[例][ruby]{
# 1ずつ増加する部分配列ごとに分ける。
a = [1,2,4,9,10,11,12,15,16,19,20,21]
b = a.chunk_while {|i, j| i+1 == j }
p b.to_a # => [[1, 2], [4], [9, 10, 11, 12], [15, 16], [19, 20, 21]]
c = b.map {|a| a.length < 3 ? a : "#{a.first}-#{a.last}... -
Enumerator
:: Lazy (3048.0) -
map や select などのメソッドの遅延評価版を提供するためのクラス。
...のメソッドの遅延評価版を提供するためのクラス。
動作は通常の Enumerator と同じですが、以下のメソッドが遅延評価を行う
(つまり、配列ではなく Enumerator を返す) ように再定義されています。
* map/collect
* flat_map/collect_co......ice_after, slice_when
* chunk, chunk_while
* uniq
* zip (※互換性のため、ブロックを渡さないケースのみlazy)
Lazyオブジェクトは、Enumerable#lazyメソッドによって生成されます。
Lazyから値を取り出すには、Enumerator::Lazy#force または
Enumera......org/) 形式のログファイルから検索を行う
# Enumerator::Lazy#map は配列ではなく Enumerator を返すため、
# 巨大な配列を確保しようとしてメモリを使い切ったりはしない
open("log.txt"){|f|
f.each_line.lazy.map{|line|
Hash[line.split(/\t/).map{|s|......ter, slice_when
* chunk, chunk_while
* uniq
* compact
* zip (※互換性のため、ブロックを渡さないケースのみlazy)
Lazyオブジェクトは、Enumerable#lazyメソッドによって生成されます。
Lazyから値を取り出すには、Enumerator::Lazy#force または
En... -
Enumerable
# slice _ when {|elt _ before , elt _ after| bool } -> Enumerator (147.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
...素を前から順にブロックで評価し、その結果によって要素をチャンクに分け
た(グループ化した)要素を持つEnumerator を返します。
隣り合う値をブロックパラメータ elt_before、elt_after に渡し、ブロックの
評価値が真になる所......rn チャンクごとの配列をブロックパラメータに渡す Enumerator
を返します。eachメソッドは以下のように呼び出します。
//emlist{
enum.slice_when { |elt_before, elt_after| bool }.each { |ary| ... }
//}
to_a や map などのその他の Enumera......en {|l1, l2| /\A\s*\z/ =~ l1 && /\S/ =~ l2 }.to_a
# => [["foo\n", "bar\n", "\n"], ["baz\n", "qux\n"]]
//}
Enumerable#chunk_while はブロックの戻り値が偽ではなく真の時に要
素を分ける事を除いて同じ処理を行います。
@see Enumerable#chunk_while, Enumerable#chunk... -
Enumerable
# slice _ before {|elt| bool } -> Enumerator (142.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
...くはブロックが真を返した要素から
次にマッチする手前までを
チャンク化(グループ化)したものを繰り返す Enumerator を
返します。
パターンを渡した場合は各要素に対し === が呼び出され、
それが真になったところをチャ......トリーを順に取る
open("ChangeLog") {|f|
f.slice_before(/\A\S/).each {|e| pp e}
}
# 上と同じだが、パターンでなくブロックを使う
open("ChangeLog") {|f|
f.slice_before {|line| /\A\S/ === line }.each {|e| pp e}
}
# "svn proplist -R" の結果を分割する
# これは......、連続に増える数値が3つ以上ある場合、これを
まとめる処理をするためには以下のようにします
(Enumerable#chunk_while のより簡単な例も参照)。
//emlist[][ruby]{
a = [0,2,3,4,6,7,9]
prev = a[0]
p a.slice_before {|e|
prev, prev2 = e, prev
prev2 + 1... -
Enumerable
# slice _ before(pattern) -> Enumerator (142.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
...くはブロックが真を返した要素から
次にマッチする手前までを
チャンク化(グループ化)したものを繰り返す Enumerator を
返します。
パターンを渡した場合は各要素に対し === が呼び出され、
それが真になったところをチャ......トリーを順に取る
open("ChangeLog") {|f|
f.slice_before(/\A\S/).each {|e| pp e}
}
# 上と同じだが、パターンでなくブロックを使う
open("ChangeLog") {|f|
f.slice_before {|line| /\A\S/ === line }.each {|e| pp e}
}
# "svn proplist -R" の結果を分割する
# これは......、連続に増える数値が3つ以上ある場合、これを
まとめる処理をするためには以下のようにします
(Enumerable#chunk_while のより簡単な例も参照)。
//emlist[][ruby]{
a = [0,2,3,4,6,7,9]
prev = a[0]
p a.slice_before {|e|
prev, prev2 = e, prev
prev2 + 1... -
NEWS for Ruby 2
. 4 . 0 (54.0) -
NEWS for Ruby 2.4.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...12217
Enumerable#sum と違って each メソッドに依存しません。
* Comparable
* Comparable#clamp を追加 10594
* Dir
* Dir.empty? を追加 10121
* Enumerable
* Enumerable#chunk ブロックを省略した場合 Enumerator を返すようになりました。2......172
* Enumerable#sum を追加 12217
* Enumerable#uniq を追加 11090
* Enumerator::Lazy
* Enumerator::Lazy#chunk_while を追加 https://github.com/ruby/ruby/pull/1186
* Enumerator::Lazy#uniq を追加 11090
* File
* File.empty? を追加 9969
* Float
* Float#ceil,......ました。
half には :even, :up, :down が指定可能です。 12548 12958 12953
* IO
* IO#gets, IO#readline, IO#each_line, IO#readlines, IO.foreach は
chomp というキーワード引数を受け付けるようになりました。12553
* Kernel
* Kernel#clone は f... -
NEWS for Ruby 2
. 3 . 0 (30.0) -
NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...7 (alias ebcdic-cp-us; dummy) を追加
* Enumerable
* Enumerable#grep_v を追加
11049
* Enumerable#chunk_while
10769
* Enumerator::Lazy
* Enumerator::Lazy#grep_v を追加
11773
* File
* File.mkfifo
11536
* O_TMPFILE に対応する File::TMPFI......ative? を追加
11151
* Proc
* Proc#call ( Proc#[] , Proc#===, Proc#yield) は最適化されました。
Backtrace doesn't show each method (show block lines directly).
TracePoint also ignores these calls.
11569
* Queue (Thread::Queue)
* 終了を通知する......* IO
* クローズ済みのIOオブジェクトに IO#close を呼んでも例外が発生しなくなりました。
10718
* IO#each_codepoint は、変換時、EOFの前に不完全な文字があると例外が発生するようになりました。
11444
* Module...