【发布时间】:2011-01-01 20:06:45
【问题描述】:
我有点困惑我是否只能在由 Java 类表示的 clojure 结构上使用 clojure 多方法,或者我可以基于多方法来调度结构或其他属性?
【问题讨论】:
标签: clojure multimethod
我有点困惑我是否只能在由 Java 类表示的 clojure 结构上使用 clojure 多方法,或者我可以基于多方法来调度结构或其他属性?
【问题讨论】:
标签: clojure multimethod
构建在第一个或唯一参数的类上分派的多方法是很常见的。在这种情况下,“类”可能是一个 Java 类、一个记录(defrecord 生成一个 Java 类),甚至是一个内部 Clojure 类型,如 ISeq。
您还可以在传递给函数的 args 的任意函数上分派。例如,您可以根据需要计算一个函数并在关键字上分派。
【讨论】:
您可以在参数的任意函数上调度多方法(该函数作为第二个参数传入defmulti。http://clojure.org/multimethods 提供了更多详细信息。
【讨论】:
您可以在您选择的任何函数上调度您的多方法。
【讨论】: