Есть интересные лекции по функциональному программированию Дмитрия Сошникова (правда, в основном, на F#).
Допустим, видишь x = 2+3.
Можно сказать: подсчитай выражение и результат положи в ячейку x.
А функциональный программист скажет: вы описали (метод расчёта) функцию х (т.е. у вас не команды, а определение функции). Из кучи определений компилятор постарается найти сокращённый вариант, который будет решением при подстановке данных.