Scheme手習い Chapter 5

3でlatの再帰、4で数の再帰、5はリストの再帰

  • ここで第1の戒律、第4の戒律が最終版に。アトムのリストlatの場合、数nの場合、S式のリストの場合の再帰の掟が決まる。
  • *関数は'(), (cons a l), (cons l l)のいずれかの上で動くから、3つ質問をする。
  • equal?を定義した
  • equal?を使って任意のS式とリストを取るremberに書き直した
  • 第6の掟「関数が正しいときのみ簡素化せよ。」が登場。
    • 書いてて今までの章よりも関数のcondが多かった印象。
  • eqan?以外の関数の中のeq?や=に関してはequal?で一般化出来る。

気付き感想

  • 最初はアトムから始まり、cons、lat・数・リストの再帰と来てなんだか少しずつ扱えるデータが増えてきたような。
  • それに伴ってeq?, =, eqan?, equal?とより多くのデータを扱える関数を使ってremberを定義しなおしたり、面白い!
  • equal?を使う事で処理が簡素化出来て理解しやすくなった。すごい。
  • p91の注に出てくる話(andもorもcondの省略形として書く事は出来る)がちょっと発想の転換な気がして面白かった。