In clojure,In clojure, perché gli associati richiedono argomenti oltre a una mappa, ma non dissociarli?
(assoc {})
genera un'eccezione arity, ma
(dissoc {})
non lo fa. Perché? Mi sarei aspettato che entrambi avrebbero lanciato un'eccezione, o entrambi non avrebbero apportato modifiche se non avessero fornito chiavi o valori.
EDIT: vedo una motivazione per consentire queste forme; significa che possiamo associare o dissociare a una lista di argomenti probabilmente vuota. Semplicemente non vedo perché uno sarebbe permesso e l'altro no, e sono curioso di sapere se c'è una buona ragione per cui mi manchi.
'(assoc {})' non ha senso, quindi non è permesso. – dsm
Nota che '(dissoc {})' neanche. – dsm
La mia tesi è che entrambi hanno un senso o non hanno senso; ma uno è permesso e l'altro no (almeno sul clojure 1.5.1). Sono curioso del perché. –