To date I have not come up with a situation needing protocols or objects in Clojure that could not be just done with functional programming.
The real killer superpowers come from extend-type and extend-protocol. You can modify existing java/clojure libraries functionality like magic. The functional equivalent is with-binding if I remember correctly.
Some Clojure libraries use protocols heavily and IMHO not just necessary.
Comments
To date I have not come up with a situation needing protocols or objects in Clojure that could not be just done with functional programming.
The real killer superpowers come from extend-type and extend-protocol. You can modify existing java/clojure libraries functionality like magic. The functional equivalent is with-binding if I remember correctly.
Some Clojure libraries use protocols heavily and IMHO not just necessary.