(defmulti multi (fn [t] (cond (seq? t) :seq (map? t) :map (vec? t) :vec ...
私はあちこちでたくさんのClojureコードのパターンを読みました。これは基本的にスイッチです(タイプを追加する場合は、新しい句を追加する必要があります)が、より冗長です。言う方法などはありません(defmethod seq, (defmethod vec (defmethod map..
か?それは非常に一般的なことであるに違いありません。階層を手動で定義することは可能ですが、シーケンス、ベクトル、マップなどの一般的なClojureタイプについてはどうでしょうか...タイプでディスパッチされたプログラムごとに定義する必要がありますか?私がポイントを逃している方法を教えてください!
編集:わかりました、(defmulti mymulti type)
それなら言うことができると思い(defmethod clojure.lang.PeristantSomething...
ましたが、Javaクラスを参照しているので不器用ですが、シーケンシャルかアソシアティブかなど、「タイプ」の品質を参照したいと思います