Wie schreibt man ein Monoid-Protokoll in Clojure?

Das Folgende funktioniert aus offensichtlichen Gründen nicht.

(defprotocol Monoid
  (mappend [a b])
  (mzero []))

mzero hat Nullargumente und Nullargumentmethoden sind in Protokollen nicht zulässig (oder nicht sinnvoll). In Haskell oder Scala, wo der Versand eher typbasiert als wertbasiert ist, ist dies kein Problem.

Was wäre der richtige Weg, um zu konzipieren und zu schreibenMonoid Protokoll in Clojure?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage