第138回 素人くさいSICP読書会(at コントロールプラス株式会社)

  • 会場提供ありがとうございました。
  • 2009年最初の回
  • 問題4.59
  • a. (meeting ?section (Friday ?time)
  • b. 最初、?divisionと?typeの間のピリオドを付け忘れた
(rule (meeting-time ?person ?day-and-time)
      (and (job ?person (?division . ?type))
           (or (meeting ?division ?day-and-time)
               (meeting whole-company ?day-and-time))))
  • c. 普通のクエリだとdivision名が出ないが、クエリでdivision名を出そうとするとwhole-companyのからみの処理が超大変。ということで、たぶん会議名は部門名じゃなくて時間で区別されている(つまり会議室は一つしかない)という前提なのではないかということに落ち着いた
  • 問題4.60
  • 二つの名前の間に何らかの優先順位を付けて、優先順位の高い方だけ処理するようにすればいい
    • というところからシンボルから文字列の変換とかわけのわかんない話に
    • 「>」や「=」は述語なのになぜ?がつかないのか、とか
    • 名前を即値として比較するのはいくらなんでもイヤなので、自分は素直に社員番号を付けた
  • 答を半分にする処理をlives-nearに組み込むとlives-nearが正しく動作しなくなるので、答の省略処理はクエリのときに使うようにする
  • インデントの話で少し盛り上がった