56件ヒット
[1-56件を表示]
(0.086秒)
検索結果
先頭5件
-
Enumerator (38025.0)
-
each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。 また、外部イテレータとしても使えます。
...を元にして定義されます。
Enumerator を介することにより String#each_byte のような
異なる名前のイテレータについても each と同様に Enumerable の機能を利用できます。
Enumerator を生成するには Enumerator.newあるいは
Object#to_enum, Objec......m_for を利用します。また、一部の
イテレータはブロックを渡さずに呼び出すと繰り返しを実行する代わりに
enumerator を生成して返します。
=== 注意
外部イテレータとしての機能は Fiber を用いて実装されているため Fiber と... -
Enumerator
:: Lazy (3031.0) -
map や select などのメソッドの遅延評価版を提供するためのクラス。
...のメソッドの遅延評価版を提供するためのクラス。
動作は通常の Enumerator と同じですが、以下のメソッドが遅延評価を行う
(つまり、配列ではなく Enumerator を返す) ように再定義されています。
* map/collect
* flat_map/collect_co......スのみlazy)
Lazyオブジェクトは、Enumerable#lazyメソッドによって生成されます。
Lazyから値を取り出すには、Enumerator::Lazy#force または
Enumerable#first を呼びます。
//emlist[例][ruby]{
# 二乗して偶数になるような整数を、小さい方か......1.step.lazy.select{|n| (n**2).even?}.first(5)
# LTSV (http://ltsv.org/) 形式のログファイルから検索を行う
# Enumerator::Lazy#map は配列ではなく Enumerator を返すため、
# 巨大な配列を確保しようとしてメモリを使い切ったりはしない
open("log.txt"){... -
Enumerator
:: Chain (3029.0) -
複数の繰り返し可能なオブジェクトを1つの Enumerator として扱うためのクラス。
...複数の繰り返し可能なオブジェクトを1つの Enumerator として扱うためのクラス。
Enumerator::Chain のオブジェクトは、Enumerable#chain や Enumerator#+ から作られます。... -
Enumerator
:: Yielder (3017.0) -
Enumerator.new で使われるクラスで、直接使うものではありません。
...Enumerator.new で使われるクラスで、直接使うものではありません。... -
Enumerator
:: ArithmeticSequence (3001.0) -
等差数列を提供するためのクラス。
等差数列を提供するためのクラス。
ArithmeticSequenceオブジェクトは、Numeric#step, Range#step によって生成されます。 -
Fiber (7.0)
-
ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。 他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。 Thread と違いユーザレベルスレッドとして実装されています。
...s do
p f.resume
end
#=> 0
1
2
3
4
//}
以下は内部イテレータを外部イテレータに変換する例です。
実際 Enumerator は Fiber を用いて実装されています。
//emlist[例:][ruby]{
def enum2gen(enum)
Fiber.new do
enum.each{|i|
Fiber.yield(...