ライブラリ
クラス
-
ARGF
. class (62) - Addrinfo (24)
- Array (372)
- CSV (24)
- Date (48)
- Dir (118)
- Enumerator (157)
-
Enumerator
:: ArithmeticSequence (14) -
Enumerator
:: Chain (7) -
Enumerator
:: Lazy (193) -
Enumerator
:: Yielder (30) -
Etc
:: Group (24) -
Etc
:: Passwd (24) - Hash (202)
- IO (230)
- Integer (48)
- Matrix (76)
- Numeric (93)
- Object (48)
- OpenStruct (24)
- Pathname (126)
- Prime (48)
-
Prime
:: PseudoPrimeGenerator (84) -
Psych
:: Nodes :: Node (24) -
REXML
:: Parent (96) - Range (49)
- StopIteration (12)
- String (184)
- StringIO (138)
- Struct (24)
- Vector (112)
-
Zlib
:: GzipReader (72)
モジュール
- Enumerable (468)
- Kernel (60)
- ObjectSpace (48)
- TSort (110)
オブジェクト
- ENV (106)
-
Readline
:: HISTORY (24)
キーワード
- % (14)
- << (12)
- Fiber (12)
- Lazy (12)
-
NEWS for Ruby 2
. 4 . 0 (9) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (5) -
NEWS for Ruby 3
. 1 . 0 (4) - ascend (24)
- bytes (14)
- chunk (12)
-
chunk
_ while (12) - codepoints (42)
- collect (96)
- collect! (52)
- collect2 (24)
- compact (4)
-
delete
_ if (72) - descend (24)
- detect (24)
- drop (12)
-
drop
_ while (60) - each (408)
-
each
_ byte (96) -
each
_ char (24) -
each
_ child (94) -
each
_ codepoint (96) -
each
_ cons (24) -
each
_ entry (6) -
each
_ grapheme _ cluster (16) -
each
_ index (24) -
each
_ key (48) -
each
_ line (168) -
each
_ object (48) -
each
_ pair (96) -
each
_ prime (24) -
each
_ slice (24) -
each
_ strongly _ connected _ component (44) -
each
_ strongly _ connected _ component _ from (44) -
each
_ value (24) -
each
_ with _ index (48) - eager (6)
-
enum
_ for (48) - feed (12)
-
filter
_ map (18) - find (48)
-
find
_ index (36) -
flat
_ map (36) - foreach (120)
- grep (12)
-
grep
_ v (10) -
group
_ by (24) - gsub (84)
- gsub! (48)
- index (36)
- inspect (14)
-
keep
_ if (72) - lazy (24)
- lines (14)
- loop (24)
- map (108)
- map! (52)
- map2 (12)
-
max
_ by (48) - new (19)
-
next
_ values (12) - optparse (12)
- partition (24)
- peek (12)
-
peek
_ values (12) - permutation (24)
- prime (12)
- produce (6)
- reject (24)
- reject! (48)
-
repeated
_ combination (24) -
repeated
_ permutation (24) - result (12)
-
reverse
_ each (28) - rewind (24)
- rindex (36)
-
ruby 1
. 9 feature (12) - select! (20)
-
slice
_ after (35) -
slice
_ before (36) -
slice
_ when (12) -
sort
_ by (24) - step (155)
-
to
_ enum (48) -
to
_ proc (6) -
tsort
_ each (22) - upto (48)
-
with
_ index (48) -
with
_ object (24) - yield (12)
- zip (24)
検索結果
先頭5件
-
Enumerator (38030.0)
-
each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。 また、外部イテレータとしても使えます。
...#map は Array#each の繰り返しを元にして定義されます。
Enumerator を介することにより String#each_byte のような
異なる名前のイテレータについても each と同様に Enumerable の機能を利用できます。
Enumerator を生成するには Enumerator.ne......m_for を利用します。また、一部の
イテレータはブロックを渡さずに呼び出すと繰り返しを実行する代わりに
enumerator を生成して返します。
=== 注意
外部イテレータとしての機能は Fiber を用いて実装されているため Fiber と......ます。
例えば以下のようなスレッドをまたいだ呼び出しはエラーになります。
//emlist[例][ruby]{
a = nil
Thread.new do
a = [1, 2, 3].each
a.next
end.join
p a.next
#=> t.rb:7:in `next': fiber called across threads (FiberError)
# from t.rb:7:in `<main>'
//}... -
Enumerator
. produce(initial = nil) { |prev| . . . } -> Enumerator (27365.0) -
与えられたブロックを呼び出し続ける、停止しない Enumerator を返します。 ブロックの戻り値が、次にブロックを呼び出す時に引数として渡されます。 initial 引数が渡された場合、最初にブロックを呼び出す時にそれがブロック 呼び出しの引数として渡されます。initial が渡されなかった場合は nil が 渡されます。
...与えられたブロックを呼び出し続ける、停止しない Enumerator を返します。
ブロックの戻り値が、次にブロックを呼び出す時に引数として渡されます。
initial 引数が渡された場合、最初にブロックを呼び出す時にそれがブロ......ブロックが例外 StopIterationを投げた場合、繰り返しが終了します。
@param initial ブロックに最初に渡される値です。任意のオブジェクトを渡せます。
//emlist[例][ruby]{
# 1, 2, 3, 4, ... と続く Enumerator
Enumerator.produce(1, &:succ)
# next......ンダムな数値を返す Enumerator
Enumerator.produce { rand(10) }
# ツリー構造の祖先ノードを列挙する Enumerator
ancestors = Enumerator.produce(node) { |prev| node = prev.parent or raise StopIteration }
enclosing_section = ancestors.find { |n| n.type == :section }
//}
このメ... -
Enumerator
# peek _ values -> Array (27182.0) -
Enumerator#next_values のように「次」のオブジェクトを 配列で返しますが、列挙状態を変化させません。
...
Enumerator#next_values のように「次」のオブジェクトを
配列で返しますが、列挙状態を変化させません。
Enumerator#next, Enumerator#next_values のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり......StopIteration 例外を発生します。
このメソッドは Enumerator#next_values と同様
yield
と
yield nil
を区別するために使えます。
//emlist[例][ruby]{
o = Object.new
def o.each
yield
yield 1
yield 1, 2
end
e = o.to_enum
p e.peek_values #=> []
e.next
p e.peek......_values #=> [1]
p e.peek_values #=> [1]
e.next
p e.peek_values #=> [1, 2]
e.next
p e.peek_values # raises StopIteration
//}
@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#next, Enumerator#next_values, Enumerator#peek_values... -
Enumerator
# peek -> object (27166.0) -
「次」のオブジェクトを返しますが、列挙状態を変化させません。
...状態を変化させません。
Enumerator#next のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり列挙状態を変更しません。
列挙が既に最後へ到達している場合は、StopIteration 例外を発生しま......e = a.to_enum
p e.next #=> 1
p e.peek #=> 2
p e.peek #=> 2
p e.peek #=> 2
p e.next #=> 2
p e.next #=> 3
p e.next #raises StopIteration
//}
@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#next, Enumerator#next_values, Enumerator#peek_values... -
prime (26012.0)
-
素数や素因数分解を扱うライブラリです。
...ラリです。
ライブラリの中心にあるのは Prime クラスで、これは素数全体を表すシングルトンです。また、素数性と素因数分解に関するメソッドを Integer に追加します。
さらに、 Prime クラスの機能を実現するための低水準......クラスも幾つか提供されています。
//emlist[例][ruby]{
require 'prime'
Prime.each(100) do |prime|
p prime #=> 2, 3, 5, 7, 11, ..., 97
end
2.prime? #=> true
4.prime? #=> false
//}
=== 生成器
Prime のメソッドは内部で低水準の擬似素数生成器を使用します......能もあります。
更に、 Enumerator と互換性のある外部イテレータでもあります。
状況に応じて適切な擬似素数生成アルゴリズムは異なるので、いくつかの生成器の実装が用意されています。
Prime::PseudoPrimeGenerator は生成器の... -
Enumerator
. new(size=nil) {|y| . . . } -> Enumerator (21178.0) -
Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを 引数として実行されます。
...
Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを
引数として実行されます。
生成された Enumerator オブジェクトに対して each を呼ぶと、この生成時に指定されたブロックを......が each の返り値となります。
@param size 生成する Enumerator オブジェクトの要素数を指定します。
Integer、Float::INFINITY、Proc オブジェク
ト、nil のいずれかを指定します。Enumerator#size の実
行時に参照......されます。
//emlist[例][ruby]{
enum = Enumerator.new{|y|
(1..10).each{|i|
y << i if i % 5 == 0
}
}
enum.each{|i| p i }
#=> 5
# 10
fib = Enumerator.new { |y|
a = b = 1
loop {
y << a
a, b = b, a + b
}
}
p fib.take(10) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
//}... -
Enumerator
# with _ index(offset = 0) -> Enumerator (21125.0) -
生成時のパラメータに従って、要素にインデックスを添えて繰り返します。 インデックスは offset から始まります。
...ist[例][ruby]{
str = "xyz"
enum = Enumerator.new {|y| str.each_byte {|b| y << b }}
enum.with_index {|byte, idx| p [byte, idx] }
# => [120, 0]
# [121, 1]
# [122, 2]
require "stringio"
StringIO.new("foo|bar|baz").each("|").with_index(1) {|s, i| p [s, i] }
# => ["foo|", 1]......ータに従って、要素にインデックスを添えてブロックを繰り返します。
インデックスは 0 から始まります。
Enumerator#with_index は offset 引数を受け取りますが、
each_with_index は受け取りません (引数はイテレータメソッドにその... -
Enumerator
. new(obj , method = :each , *args) -> Enumerator (21123.0) -
オブジェクト obj について、 each の代わりに method という 名前のメソッドを使って繰り返すオブジェクトを生成して返します。 args を指定すると、 method の呼び出し時に渡されます。
...すると、 method の呼び出し時に渡されます。
@param obj イテレータメソッドのレシーバとなるオブジェクト
@param method イテレータメソッドの名前を表すシンボルまたは文字列
@param args イテレータメソッドの呼び出しに渡す任......意個の引数
//emlist[例][ruby]{
str = "xyz"
enum = Enumerator.new(str, :each_byte)
p enum.map {|b| '%02x' % b } # => ["78", "79", "7a"]
//}... -
Enumerator
# each(*args) -> Enumerator (21119.0) -
生成時のパラメータに従ってブロックを繰り返します。 *args を渡した場合は、生成時のパラメータ内引数末尾へ *args を追加した状態で繰り返します。 ブロック付きで呼び出された場合は、 生成時に指定したイテレータの戻り値をそのまま返します。
...たイテレータの戻り値をそのまま返します。
@param args 末尾へ追加する引数
//emlist[例1][ruby]{
str = "Yet Another Ruby Hacker"
enum = Enumerator.new {|y| str.scan(/\w+/) {|w| y << w }}
enum.each {|word| p word } # => "Yet"......# "Another"
# "Ruby"
# "Hacker"
str.scan(/\w+/) {|word| p word } # => "Yet"
# "Another"
# "Ruby"... -
Enumerator
# next _ values -> Array (21084.0) -
「次」のオブジェクトを配列で返します。
...「次」のオブジェクトを配列で返します。
Enumerator#next とほぼ同様の挙動をします。終端まで到達した場合は
StopIteration 例外を発生させます。
このメソッドは、
yield
と
yield nil
を区別するために使えます。
next メソッ......f o.each
yield
yield 1
yield 1, 2
yield nil
yield [1, 2]
end
e = o.to_enum
p e.next_values
p e.next_values
p e.next_values
p e.next_values
p e.next_values
e = o.to_enum
p e.next
p e.next
p e.next
p e.next
p e.next
## yield args next_values next
# yield []......[1] 1
# yield 1, 2 [1, 2] [1, 2]
# yield nil [nil] nil
# yield [1, 2] [[1, 2]] [1, 2]
//}
@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#next, Enumerator#peek, Enumerator#peek_values...