Hmmm.....I meant for all those "end.call(&meth do"'s to be "end.call &(meth do". Interesting it still works.

----- Original Message ----
From: James Koppel <jamesbkoppel / yahoo.com>
To: ruby-talk / ruby-lang.org
Sent: Sunday, March 2, 2008 8:31:55 PM
Subject: [SOLUTION] [QUIZ] Hello, world? (#158)

module Kernel
  def meth(&block)
    o=Object.new
    o.instance_variable_set(:@block,block)
    def o.__call(&b)
      @block2=b
      instance_eval &@block
    end
    def o.yiel
      @block2.call
    end
    o.method(:__call)
  end
end

meth do
  yiel
  puts "!"
end.call &(meth do
  proc do
    yiel
    print "d"
  end
end.call(&meth do
  proc do
    yiel
    print "l"
  end
end.call(&meth do
  proc do
    yiel
    print "r"
  end
end.call(&meth do
  proc do
    yiel
    print "o"
  end
end.call(&meth do
  proc do
    yiel
    print "w"
  end
end.call(&meth do
  proc do
    yiel
    print " "
  end
end.call(&meth do
  proc do
    yiel
    print ","
  end
end.call(&meth do
  proc do
    yiel
    print "o"
  end
end.call(&meth do
  proc do
    yiel
    print "l"
  end
end.call(&meth do
  proc do
    yiel
    print "l"
  end
end.call(&meth do
  proc do
    yiel
    print "e"
  end
end.call(&meth do
  print "H"
end))))))))))))



-------------------------

I couldn't find a way to truly make blocks accept blocks. Anyone have anything better than my close substitute?



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 






      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ