Transitioning from OOP to functional style can be quite challenging, not least because OO programmers are used to thinking in nouns. Programming languages that use functions as primary means of abstraction force one to:
- design things in terms of verbs,
- find new ways of doing composition,
- rediscover polymorphism in a different light.
Fear not! What you have learned about good OO design can be applied to FP, in obvious and weird ways. Code examples will be presented in Clojure.