Macro を書くタイミング

繰返しが何回か出てきたら関数に抽出する、というのはまあ分かるけど、 lisp でマクロを定義するタイミングは難しい。
同じような形が出てきたときにさっと定義すればいいのだけど、つい「これはマクロでごまかすんではなくて奇麗なデータ構造を考えるべきだ、とりあえずあとまわし」とかやってしまう。で、結局繰返しが編集するにも見た目にも堪え難いくらいたまってから、手作業でマクロに書き換えたり。これはいかにもかっこわるい。