Exclude a list of natrual number
def natural_numbers_except(exclude)
exclude_map = {}
exclude.each { |x| exclude_map[x] = true }
x = 1
while true
yield x unless exclude_map[x]
x = x.succ
end
end
natural_numbers_except([2,3,6,7]) do |x|
break if x > 10
puts x
end
# 1
# 4
# 5
# 8
# 9
# 10
Related examples in the same category