The problem, as has been pointed out, is that the expression in the
brackets gets evaluated before the reverse method. In order to control
evaluation of parts of an expression you need something like Lisp
macros, which would be extremely difficult to add to ruby and,
according to matz, too dangerous.

For a more thorough discussion on this point, see
http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/7650c939ca5f9881/ead3540b101ce5b4?