マクロ
マクロについて考えていたことがまとまってきた。
- マクロは記述性を上げるものである。
- マクロは理解している人にとって可読性が上がるものである(上げるではなく!)。
- マクロは理解していない人にとって可読性を下げるものである。
つまり、lispのマクロが何故強力*すぎる*のかと言えば、コミュニケーションを阻害するからなのだ。
極論を言ってしまえば、とてもよく判っている人同士ならば幾らでもマクロを使える。逆にあまり判っていない人に対してはマクロを使ってはならない。
しかし、必ずしも書いたものと読むものが等しくなくても良いのではないか。
例えば、マクロを適度に展開し、コミュニケーション用ソースコードを作る。
マクロを使って書いているのだから記述者にとっては記述性が高く、平易に書き下されているのだから誰にとってもそれなりに可読性が高い。
双方ともに幸せな関係を築けるだろう。