Programação funcional é um termo muito abrangente e se refere a multiplas características que linguagens podem ou não podem ter, muitos autores se discordam quanto à classificar uma linguagem como funcional ou não, mas fato é que o autor do post mostrou algumas características de linguagens funcionais (ainda que forma errônea).
Haskell por exemplo é considerado uma linguagem funcional, tendo avaliação preguiçosa não permitindo que efeitos colaterais aconteçam (somente se você colocar em estruturas bem definidas).
Elixir também é considerada uma linguagem funcional mas possui o método IO.puts
que é um efeito colaterál.
Também, Scala é funcional mas também possui features de orientação à objeto.
Até mesmo o JavaScript, Python e Java podem ser funcionais (se levarmos em conta que elas permitem:
- criação de lambdas
- o uso de funções como
map
,filter
ereduce
(funções de alta ordem) - recursão
Reforço a resposta do comentário acima, é muito fácil assistir um vídeo no youtube sobre esse estilo e achar que sabe tudo sobre ela, programação funcional é algo que data até mesmo antes da criação da máquina de Turing, e aprender as bases dela através do cálculo lambda é uma ótima maneira de entender mais sobre esse paradigma.
Recomendo a playlist da UFABC que ensina esse estilo utilizando Haskell
Caso eu esteja errado favor me corrigir!