できればマクロもモナドも使いたくないのですが,いつ使うかということについて個人的に決めているルールを言語化してみると,どちらのルールも似ているということに気づきました. マクロクラブとモナドクラブたしか「プログラミング Clojure」という本に「マクロ・クラブ」と題したマクロ利用に関するルールが書かれており,それと同じことをモナドについても考えているのだということに気づいて,書き出してみました. マクロ・クラブマクロクラブのルールは次のようなものでした. マクロを書くな (言い換えると定義済みのマクロを使う分には構わない)それが,パターンをカプセル化する唯一の方法ならば,マクロを書けただし,同等の関数呼び出しと比較して簡単に書けるのならマクロを書いても構わないモナド・クラブ「モナド・クラブ」というのは今私が勝手につけた名前ですが,ルールはマクロ・クラブに似通っています. 新しいモナドを作