Наткнулся тут на
заметку про аспекты, которые в основном свойственных функциональному программировнию (хотя не обязательно только ему), если в кратце, то вот список:
Метафора программирования (функции)
Модульность кода (в функциях)
Локализация эффектов действия кода
Отложенное выполнение кода
Переконфигурируемый код
Метапрограммирование (функции рождают функции)
P.S. Перевод дословный, и для более хорошего понимания пунктов лучше почитать статью.