RosettaCodeData/Task/Van-Eck-sequence/Ruby/van-eck-sequence-1.rb

11 lines
224 B
Ruby

van_eck = Enumerator.new do |y|
ar = [0]
loop do
y << (term = ar.last) # yield
ar << (ar.count(term)==1 ? 0 : ar.size - 1 - ar[0..-2].rindex(term))
end
end
ve = van_eck.take(1000)
p ve.first(10), ve.last(10)