User defined function, recursion and passing self along

That is fascinating. Ruby uses combinators everywhere.

Also, wtf?!?

[1,2,3,3,4,5].uniq!
  => [1,2,3,4,5]

[1,2,3,4,5].uniq!
  => nil

Uh… wtf?! A prime example of why I like statically typed languages, this oddness would be encoded in the type instead of being, just… wtf…?