Dave Symonds wrote: > Hi All, > > I'm giving a presentation to my research group next month about Ruby > (mainly an intro), but seeing as though it's in a Computer Science > department, with plenty of people who have several decades of > programming experience in many different languages, I'm trying to come > up with some examples of (among other things) how Ruby's dynamism can > be taken to extremes. My first thought was satisfying Orwell's famous > "Nineteen Eighty Four" proposition about mathematical adherence to Big > Brother: > > class Fixnum > alias old_plus + > > def +(arg) > if self == 2 and arg == 2 > 5 # INGSOC compliance > else > old_plus(arg) > end > end > end > > > Any improvements, or other neat little examples I can use? I've also > adapted the VCR-proxy example (pimple-class using method_missing to > catch, record and pass on method calls). I always like the interchangeability of lambda#[] and Hash#[] which allows for poor man's memoize: fun = lambda {|x| x + 10 - 2} code = optimize ? Hash.new {|h,k| h[k] = fun[k]} : fun 1000.times { code[100] } Admittedly a silly example... :-) robert