Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

10章分の4章

今日は、『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