Project EulerをRubyで解いているんだけど、Problem55で初めて自分としては良い出来のコードが書けたので自慢しようと思う。
class Integer def reverse self.to_s.reverse.to_i end def palindrome? self == self.reverse end def lychrel? myself = self (1..50).all? do |i| !(myself += myself.reverse).palindrome? end end end puts (1..9999).select { |i| i.lychrel? }.size
配列のall?やany?メソッドは、これまで書いていた方法と比べるとスキッと書けるから使っていて楽しい。人に「好きなメソッドは?」と聞かれたら、all?とany?と答えることにしよう!!
それとワンライナーではないけど、私はメソッドを数珠繋ぎにしがちだった。人のWebでのRubyコードが適切にメソッド分けしていたので真似したら、これまたスキッと書けたので驚いた。「returnが必要ない」の意味が少しつかめたかもしれない。