In clojure,In clojure, warum assoc erfordert Argumente zusätzlich zu einer Karte, aber nicht trennen?
(assoc {})
löst eine arity Ausnahme, aber
(dissoc {})
nicht. Warum? Ich hätte erwartet, dass entweder beide eine Ausnahme auslösen oder beide keine Änderungen vornehmen, wenn keine Schlüssel oder Werte bereitgestellt werden.
EDIT: Ich sehe eine Begründung für diese Formen zuzulassen; es bedeutet, dass wir assoc oder disso auf eine möglicherweise leere Liste von Argumenten anwenden können. Ich verstehe nur nicht, warum man das erlaubt und das andere nicht, und ich bin neugierig, ob es einen guten Grund dafür gibt, dass ich vermisst werde. Diese
'(Assoc {})' macht keinen Sinn, daher ist es nicht erlaubt. – dsm
Beachten Sie, dass '(Dissozi {})' auch nicht. – dsm
Mein Argument ist, dass entweder beide einen Sinn ergeben oder keinen Sinn ergeben; aber eins ist erlaubt und das andere nicht (zumindest auf clojure 1.5.1). Ich bin neugierig, warum. –