Skip to content

Instantly share code, notes, and snippets.

@latentflip
Created April 7, 2011 09:59
Show Gist options
  • Save latentflip/907458 to your computer and use it in GitHub Desktop.
Save latentflip/907458 to your computer and use it in GitHub Desktop.
def counter(start=0, increment=1)
lambda do
val = start
start += increment
val
end
end
result = counter(10,2)
puts result.call #=>10
puts result.call #=>12
puts result.call #=>14
result = counter(2,3)
puts result.call #=>2
puts result.call #=>5
@latentflip
Copy link
Author

Also,

def counter(start=0, increment=1)
  count = nil
  lambda do
    count = count ? count+increment : start
  end
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment