るりまサーチ

最速Rubyリファレンスマニュアル検索!
376件ヒット [1-100件を表示] (0.112秒)

別のキーワード

  1. _builtin lazy
  2. lazy slice_before
  3. lazy zip
  4. lazy chunk
  5. lazy to_enum

クラス

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Enumerable#lazy -> Enumerator::Lazy (18256.0)

自身を lazy な Enumerator に変換したものを返します。

...自身を lazy な Enumerator に変換したものを返します。

この Enumerator は、以下のメソッドが遅延評価を行う (つまり、配列ではな
くEnumeratorを返す) ように再定義されています。

* map/collect
* flat_map/collect_concat
* select/find_all
*...
...のみlazy)
* cycle (※一貫性のため、ブロックを渡さないケースのみlazy)

以下はピタゴラス数 (a**2 + b**2 = c**2 を満たす自然数 a, b, c の組) を
列挙するプログラムです。

//emlist[例][ruby]{
def pythagorean_triples
(1..Float::INFINITY).lazy.flat...
...数を表示する
p pythagorean_triples.take(10).force # takeはlazyなので、forceが必要です
p pythagorean_triples.first(10) # firstはeagerです
# 100より小さいピタゴラス数を表示する
p pythagorean_triples.take_while { |*, z| z < 100 }.force
//}

@
see Enumerator::Lazy...

Enumerator::Lazy.new(obj, size=nil) {|yielder, *values| ... } -> Enumerator::Lazy (3165.0)

Lazy Enumerator を作成します。Enumerator::Lazy#force メソッドなどに よって列挙が実行されたとき、objのeachメソッドが実行され、値が一つずつ ブロックに渡されます。ブロックは、yielder を使って最終的に yield される値を 指定できます。

...
Lazy
Enumerator を作成します。Enumerator::Lazy#force メソッドなどに
よって列挙が実行されたとき、objのeachメソッドが実行され、値が一つずつ
ブロックに渡されます。ブロックは、yielder を使って最終的に yield される値を
指定で...
...pact
end
end

class Enumerator::Lazy
def filter_map
Lazy
.new(self) do |yielder, *values|
result = yield *values
yielder << result if result
end
end
end

1.step.lazy.filter_map{|i| i*i if i.even?}.first(5)
# => [4, 16, 36, 64, 100]
//}

@
raise ArgumentError 引数を指...
...定しなかった場合、ブロックを指定しなかった場合に発生します。

@
see Enumerator.new...

Enumerator::Lazy#drop(n) -> Enumerator::Lazy (3161.0)

Enumerable#drop と同じですが、配列ではなくEnumerator::Lazy を返します。

...Enumerator::Lazy を返します。

@
param n 要素数を指定します。

@
raise ArgumentError n に負の数を指定した場合に発生します。

//emlist[例][ruby]{
1.step.lazy.drop(3)
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator: 1:step>>:drop(3)>

1.step.lazy.drop(3).take...
...(10).force
# => [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
//}

@
see Enumerable#drop...

Enumerator::Lazy#grep(pattern) {|item| ... } -> Enumerator::Lazy (3161.0)

Enumerable#grep と同じですが、配列ではなくEnumerator::Lazy を返します。

...配列ではなくEnumerator::Lazy を返します。

//emlist[例][ruby]{
(100..Float::INFINITY).lazy.map(&:to_s).grep(/\A(\d)\1+\z/)
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: 100..Infinity>:map>:grep(/\A(\d)\1+\z/)>
(100..Float::INFINITY).lazy.map(&:to_s).grep(/\A(\d)\1+\z/...
...).take(10).force
# => ["111", "222", "333", "444", "555", "666", "777", "888", "999", "1111"]
//}

@
see Enumerable#grep, Enumerable#grep_v, Enumerator::Lazy#grep_v...

Enumerator::Lazy#grep_v(pattern) {|item| ... } -> Enumerator::Lazy (3161.0)

Enumerable#grep_v と同じですが、配列ではなくEnumerator::Lazy を返します。

...配列ではなくEnumerator::Lazy を返します。

//emlist[例][ruby]{
(100..Float::INFINITY).lazy.map(&:to_s).grep_v(/(\d).*\1/)
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: 100..Infinity>:map>:grep_v(/(\d).*\1/)>
(100..Float::INFINITY).lazy.map(&:to_s).grep_v(/(\d).*\1/).t...
...ake(15).force
# => ["102", "103", "104", "105", "106", "107", "108", "109", "120", "123", "124", "125", "126", "127", "128"]
//}

@
see Enumerable#grep_v, Enumerable#grep, Enumerator::Lazy#grep...

絞り込み条件を変える

Enumerator::Lazy#take(n) -> Enumerator::Lazy (3161.0)

Enumerable#take と同じですが、配列ではなくEnumerator::Lazy を返します。

...すが、配列ではなくEnumerator::Lazy を返します。

n が大きな数 (100000とか) の場合に備えて再定義されています。
配列が必要な場合は Enumerable#first を使って下さい。

@
param n 要素数を指定します。

@
raise ArgumentError n に負の数を...
...指定した場合に発生します。

//emlist[例][ruby]{
1.step.lazy.take(5)
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator: 1:step>>:take(5)>

1.step.lazy.take(5).force
# => [1, 2, 3, 4, 5]
//}

@
see Enumerable#take...

Enumerator::Lazy#filter {|item| ... } -> Enumerator::Lazy (3157.0)

Enumerable#select と同じですが、配列ではなくEnumerator::Lazy を返します。

...はなくEnumerator::Lazy を返します。

@
raise ArgumentError ブロックを指定しなかった場合に発生します。

//emlist[例][ruby]{
1.step.lazy.find_all { |i| i.even? }
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator: 1:step>>:find_all>

1.step.lazy.select { |i| i.even...
...? }.take(10).force
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
//}

@
see Enumerable#select...

Enumerator::Lazy#find_all {|item| ... } -> Enumerator::Lazy (3157.0)

Enumerable#select と同じですが、配列ではなくEnumerator::Lazy を返します。

...はなくEnumerator::Lazy を返します。

@
raise ArgumentError ブロックを指定しなかった場合に発生します。

//emlist[例][ruby]{
1.step.lazy.find_all { |i| i.even? }
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator: 1:step>>:find_all>

1.step.lazy.select { |i| i.even...
...? }.take(10).force
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
//}

@
see Enumerable#select...

Enumerator::Lazy#select {|item| ... } -> Enumerator::Lazy (3157.0)

Enumerable#select と同じですが、配列ではなくEnumerator::Lazy を返します。

...はなくEnumerator::Lazy を返します。

@
raise ArgumentError ブロックを指定しなかった場合に発生します。

//emlist[例][ruby]{
1.step.lazy.find_all { |i| i.even? }
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator: 1:step>>:find_all>

1.step.lazy.select { |i| i.even...
...? }.take(10).force
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
//}

@
see Enumerable#select...

Enumerator::Lazy#collect {|item| ... } -> Enumerator::Lazy (3156.0)

Enumerable#map と同じですが、配列ではなくEnumerator::Lazy を返します。

...ではなくEnumerator::Lazy を返します。

@
raise ArgumentError ブロックを指定しなかった場合に発生します。

//emlist[例][ruby]{
1.step.lazy.map{ |n| n % 3 == 0 }
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator: 1:step>>:map>

1.step.lazy.collect{ |n| n.succ }.ta...
...ke(10).force
# => [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
//}

@
see Enumerable#map...

絞り込み条件を変える

Enumerator::Lazy#collect_concat {|item| ... } -> Enumerator::Lazy (3156.0)

ブロックの実行結果をひとつに繋げたものに対してイテレートするような Enumerator::Lazy のインスタンスを返します。

...結果をひとつに繋げたものに対してイテレートするような
Enumerator::Lazy のインスタンスを返します。

//emlist[][ruby]{
["foo", "bar"].lazy.flat_map {|i| i.each_char.lazy}.force
#=> ["f", "o", "o", "b", "a", "r"]
//}

ブロックの返した値 x は、以下の...
...rator::Lazy) とき

それ以外のときは、x は分解されず、そのままの値として使われます。

//emlist[][ruby]{
[{a:1}, {b:2}].lazy.flat_map {|i| i}.force
#=> [{:a=>1}, {:b=>2}]
//}

@
raise ArgumentError ブロックを指定しなかった場合に発生します。

@
see En...
<< 1 2 3 ... > >>