. , , , Ruby , , . , Enumerator, , Enumerator::Lazy . , . OP. -.
, :
. x>2 , .
[1,2,3].partition.inject(0) do |x, acc|
x>2
acc+=x
end
[1,2,3].each.inject(0) do |x, acc|
x>2
acc+=x
end
.
#each.
[1,2,3].each.inject(0) do |x, acc|
acc+=x
end
:
[1,2,3].inject(0) do |x, acc|
acc+=x
end
#partition. :
[1,2,3].partition.inject(0) do |x, acc|
acc+=x
end
:
[1,2,3].inject(0) do |x, acc|
acc+=x
end
, , :
[ 1, 2, 3 ].inject :+
#partition . , , , #partition, #keep_if .., , , , , :
array = [ *1..6 ]
shuffled_arrray = array.shuffle
shuffled_array
.partition
.with_index { |element, index|
element > index
}
:
e = partition_enumerator_of_array = array.partition
e.each &:even?
e.each { rand() > 0.5 }
, :
array.partition &:even?
:
e.each &:even?
, , . . , #map! #reject!, , . , , . , , , , , , , - . .
Enumerator , Enumerator. , Enumerator , , , . , .