ソフトウェアの特定の部分をどのように構築するかという問題に直面しています。make-temp-dir
現在のOSに応じて、いくつかの暗い魔法を行う関数(および他の多くの関数)があるとしましょう。OS ごとにこれらのメソッドの実装を個別の名前空間に配置できるようにしたいと考えています。
まず、プロトコル(可能であれば)またはマルチメソッドがこれに対する解決策であると私は信じています。ただし、複数の名前空間にまたがる実装でこれらを使用する例は見たことがありません。そして、これがどのように機能するかを理解することはできません。
第二に、これにプロトコルを使用する場合、次のようなメソッドを呼び出す必要があります
(make-temp-dir current-os arg-1 arg-2)
どういうわけか、最初の引数として常に os を渡すのは、私にはあまり良くないように見えます。make-temp-dir
セマンティックのために、OSに応じて賢明な決定を下したいと思います。確かに、いくつかのマクロを使用して、次のようなことができます
(doto current-os
(make-temp-dir arg-1 arg2))
しかし、それは間違っていると感じます。
これはどのように行うべきですか?それとも私は間違った方向に進んでいますか?どんな助けでも感謝します。
編集:さて、@kotarakに感謝します。何とか機能させることができました。これにつまずいた人は、https://gist.github.com/2477120。うまくいっているので、それでいいと思います。みんな、ありがとう。