foo が Enumerable だったとして
foo.max は
foo.max{|a,b|a<=>b} と同じ

比較のための値の計算の方法じゃなくて、大小比較の方法をブロックで外付けしてやるわけ。