具有函数调用的 Clojure 多方法?

Clojure multimethods with functions call?

使用具有简单功能的多重方法是不好的做法吗?具体来说,每个方法调用一个函数来执行逻辑?

(defn append 
"docstring"
[[book page]] 
(.append book page))
(defmulti book!
(fn [a b] a))
(defmethod book! :append
[_ b]
(append b))

我想这样做的原因是能够在每个函数上生成文档字符串并通过多种方法使用这些函数。

拥有定义只是调用另一个函数的多重方法没有什么不好的做法。您可以在您认为提供最易读代码的任何粒度级别创建尽可能多的函数。