Skip to content

Instantly share code, notes, and snippets.

@drteeth
Created August 29, 2011 02:06
Show Gist options
  • Select an option

  • Save drteeth/1177607 to your computer and use it in GitHub Desktop.

Select an option

Save drteeth/1177607 to your computer and use it in GitHub Desktop.
ruby lambda example
class Monster
def what_am_i
end
end
class Ghost < Monster
def what_am_i
puts "I'm a ghost."
end
end
class Goblin < Monster
def what_am_i
puts "I'm a Goblin"
end
end
create_a_ghost = lambda { Ghost.new }
create_a_goblin = lambda { Goblin.new }
monster_factories = [create_a_ghost, create_a_goblin]
monster_factory = monster_factories[ rand(monster_factories.length)]
monster = monster_factory.call()
monster.what_am_i
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment