Смешение объектно-ориентированного и функционального программирования
Какие языки доступны для продвижения как объектно-ориентированного, так и функционального программирования? Я знаю, что любой язык, который поддерживает первоклассные функции, можно считать функциональным, но я ищу синтаксис, специально предназначенный для обоих стилей кодирования.
Используя такой язык, я представляю, как изолировать все изменения состояния в одной части кода, а остальная часть программы должна быть чисто функциональной. Одно только размышление об этом заставляет меня пускать слюни (отладка небес!).
До сих пор я обнаружилScala хотя я только что услышал об этом (и это выглядит потрясающе). Есть ли в этом "смешанном стиле" большие соперники? парадигма?