Clojure の一つの名前空間で複数ファイルに分けたい
とあるオレオレライブラリの管理をする時、ソースファイルとしてはある程度機能別に分けたいのだが、 そのライブラリを使うとなった時にはあまり require, use で指定する名前空間は増やしたくない。
そう言う時どうすりゃいいんだろと少しググって見たら、Clojure だと以下のリンク先のようにするのが良さそう。
Splitting a Clojure namespace over multiple files - Stack Overflow
簡単に言うと ns マクロで宣言した名前空間と同名の clj ソースは普通に用意し、分割したいコー ド部分の方は in-ns で 同じ名前空間にはするが別名のファイルとし、元の方で load すると言う もの。
この発想はなかった。
と言うか大元の Clojure のソースでの in-ns の使い方みる感じ本来こっちの目的で 用意したんじゃないかと思える。in-ns は今まで REPL での名前空間切替にしか使ってなかったがこれは参考になった。