今日は、『The Little Schemer』の
- Chapter 4 Numbers Games
を読みました。
Numbers Gamesとあるように,加減乗除や不等号演算などを再帰を用いて,遊び感覚で説明してありました。楽しい章でした(^^)。
等号(=)の定義でも再帰が使われていたので,こんなところにも再帰を使うなんてと,なんだか笑ってしまいました。面白いので,意味はないのですがRubyで書いてみました。昨日,まつもとゆきひろさんの講演もお聞きしたことだし…。
def my_eq?(n, m) if zero?(m) zero?(n) elsif zero?(n) false else my_eq?(n-1, m-1) end end def zero?(n) n == 0 end puts my_eq?(5, 5) #=> true puts my_eq?(5, 7) #=> false