Все программирование связано с математикой. Действительно, многие университеты все еще помещают свои программы по информатике в компетенцию математического факультета.
Что касается изучения функционального программирования, вам не нужно иметь прочную базу по математике, чтобы изучить его. Сейчас я выучил три разных функциональных языка с достаточным уровнем знаний (Haskell, Erlang, Clojure), и мои собственные математические навыки крайне слабы. Сообщество Haskell может, действительно, стать немного раздражающим в своем математико-ориентированном способе говорить о вещах, но Erlang и Clojure оба являются очень прагматичными функциональными языками программирования, которые не так сложно подобрать, потому что учебная информация написана, по-видимому, для программистов, не фанатов математики. Это , как говорится, несмотря на мой гандикап в математике я сделал подобрать Haskell, так что это не невозможно.
Реальная трудность, с которой я столкнулся, выбирая декларативные языки программирования в целом (функциональность которых является подмножеством), заключается в том, чтобы отказаться от этого стремления к контролю; сказать компьютеру, что делать. Требуется некоторое привыкание.