> 2, Clarity. I _like_ being able to say
> 
>       while gets
>         ...
>       end

I like to add that while I think Ruby's current compromise is very good
(tradeoff between readability and meaning overloading) reaching for
writability means one have to go to C direction. In C one could check if at
most two of the tests have failed with:

  /* is*-routines return boolean (that is 0 or 1), 
     and we want to print "ok" if at least four of the tests passes */
  if( isPerfect() + isBeautiful() + isWonderful() + 
      isNotTooBad() + isEasy() + isOhInRuby() > 6-2 ){
      printf("ok");
  }

One can accomplish equivalent functionality with

if [isPerfect, isBeautiful, isWonderful, 
    isNotTooBad, isEasy, isOhInRuby].filter{
  |x| nil if x == true; x}.compact!.length <= 2
  print "ok"
end

But I'm sure someone else agrees it's quite a bit harder and uglier (while
I'm not saying C-version isn't ugly :).

(Maybe we should have Array.count{|i| i == true} ?)

	- Aleksi