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