SICPを読む(64) 問題 2.46 - 2.47 Yanko先生のデバッグ手法

図形言語の実装部分に突入。問題は簡単なので略。僕は図形言語にYanko先生ソースを使ってるんですが、SICPの実装方法とはちょっと違うみたい。

ちょっとフレームの定義を見てみる。


まずふつうの。

(define (make-frame origin edge1 edge2)
  (list origin edge1 edge2))

(make-frame 1 2 3)
; (1 2 3)

普通です。リストですね。


Yanko先生版。

(define (make-frame origin edge1 edge2)
  (list 'frame origin edge1 edge2))

Yanko先生は(list 'frame ...)としてる。これがデバッグをしたときに物凄い効果を発揮する

(make-frame 1 2 3)
; (frame 1 2 3)

スゲーわかりやすい。

意味の無いリストに意味付けを行ってる。こうしておけばフレーム定義だと一目瞭然でわかるし、デバッグの効率は格段に上がるはず。


ちょっと勉強になりました。