ФП для меня - минимум сокрытия данных, алгебраические типы данных, неизменяемое состояние там где возможно, взаимодействия со внешним миром через модель эффектов, полиморфизм ad-hoc, higher-kinds, и объекты из теорката вместо паттернов.
Классы + сокрытие данных + мутирующее состояние + древовидные иерархии объектов и полиморфизм сабтайпингом, ну и паттерны поверх всего этого.
В скале есть классы. В скале есть модификаторы видимости. В скале есть мутирующее состояние. В скале используются древовидные иерархии объектов и полиморфизм сабтайпингом. Паттерны я не знаю, что это такое