title: Why return a symbol of a method instead of just calling the method? (Ruby the Hard Way Ex43)
body: <p>As i study <a href="http://ruby.learncodethehardway.org/book/ex43.html" rel="nofollow">this</a> lesson, I see the following blocks and methods.</p>
  
  <pre><code>while true
    puts "\n--------"
    room = method(next_room)
    next_room = room.call() #calls central_corridor
  end
  
  def death()
    puts "you die"
    Process.exit(1)
  end
  
  def central_corridor()
    puts "He's about to pull a weapon to blast you."
    prompt(); action = gets.chomp()
  
    if action == "shoot!"
      puts "Your laser misses him entirely."
      return :death
  </code></pre>
  
  <p>So returning <code>:death</code> clearly launches the <code>death()</code> method, but why is this better than simply calling <code>death()</code> outright ?</p>
  
  <p>Could not this game go through its entire range of "rooms" just by "calling" other room methods?</p>
  
  <p>Is the purpose simply to teach us about the <code>method</code> method?</p>
  
  <p>Thanks</p>