В настоящее время я наслаждаюсь переходом с объектно-ориентированного языка на функциональный. Это глоток свежего воздуха, и я чувствую себя гораздо более продуктивным, чем раньше.
Однако есть один аспект ООП, для которого я еще не нашел удовлетворительного ответа на стороне FP, и это полиморфизм . т.е. у меня есть большая коллекция элементов данных, которые необходимо обрабатывать совершенно разными способами при передаче в определенные функции. В качестве аргумента предположим, что существует множество факторов, управляющих полиморфным поведением, поэтому потенциально экспоненциально много различных комбинаций поведения.
В ООП с этим можно относительно хорошо справиться с помощью полиморфизма: либо через композицию + наследование, либо через подход, основанный на прототипах.
В FP я немного застрял между:
Какие функциональные подходы рекомендуются для такого рода ситуаций? Есть ли другие хорошие альтернативы?