From: Daniel Lucraft Date: 2007-07-19T18:29:18+09:00 Subject: Re: Overwriting "if" Matthew Rudy wrote: > I want to overwrite if, > Any amusing suggestions on how to implement this will be much welcomed. > > MatthewRudy Be like Smalltalk! irb> class Object irb> def if irb> if self irb> yield irb> end irb> end irb> end => nil irb> (4==4).if { p :true } :true => nil irb> (4==6).if { p :true } => nil irb> class Object irb> def if(blocks) irb> if self irb> blocks[:then].call irb> else irb* blocks[:else].call irb> end irb> end irb> end => nil irb> (4==4).if :then => lambda { p :true }, :else => lambda { p :false } :true => nil irb> (4==6).if :then => lambda { p :true }, :else => lambda { p :false } :false => nil irb> Be like Arc!! irb> alias fn lambda => nil irb> (4==6).if :then => fn { p :true }, :else => fn { p :false } :false => nil -- Posted via http://www.ruby-forum.com/.