第52回 素人くさいSICP読書会(at 赤坂某所)

  • なぜ各パッケージにraiseを定義してはダメなのかをhisaさんに延々と説明してもらった。オレ、頭悪いなあ
    • 各パッケージに定義しちゃうと直さなきゃならない個所がちらばってて大変。そもそもパッケージをいじるのはイクない
    • get/put-coercionを使うと加法的に変換処理を追加できるから、コードの書き換えによるバグ発生の危険を減らせる、と
    • 塔のリストからの自動生成にこだわって、「変換の実装は2引数の型から人間が判断するしかない」ということが理解できてなかった
  • で、結局、raiseを書き直し。ごく簡単な処理なのに、エラーばっかりでえらく手間がかかった。てんぱってたらしい
  • 2引数の演算しか動かないとかいろいろとダメなコードだけど、一応ここに2.84の自分の解答を貼っとく
  • あとから考えるとなんかDIっぽい話だな
  • このあたりはつまんないからと飛ばす人が多いみたいだけど、設計の話はそれなりに重要じゃないかと思う
  • あ、get-coercionのエラー処理忘れてた。今、気付いた