Recently I read following SO question :
Is there any use cases for employing the Visitor Pattern in Scala? Should I use Pattern Matching in Scala every
I suppose, Command
pattern not needed in functional languages at all. Instead of encapsulation command function inside object and then selecting appropriate object, just use appropriate function itself.
Flyweight
is just cache, and has default implementation in most functional languages (memoize in clojure)
Even Template method
, Strategy
and State
can be implemented with just passing appropriate function in method.
So, I recommend to not go deep in Design Patterns when you tries yourself in functional style but reading some books about functional concepts (high-order functions, laziness, currying, and so on)