Functional programming - smells

  • Strength of functional = heterogeneity and lack of strongly-typedness
  • But this means you don’t have the confidence of the compiler via compiler errors
  • Some Clojure concepts like protocols and record types provide levels of typing and interop with java interfaces and are about polymorphism.
  • You could pass the wrong things to the wrong thing. Nothing fundamental in the code prevents you from fucking up. Could maybe use spec to accomplish this?