freeCodeCamp/guide/portuguese/software-engineering/functional-programming/index.md

2.5 KiB

title localeTitle
Functional Programming Programação Funcional

Programação Funcional

A programação funcional é o processo de construção de software, compondo funções puras , evitando estado compartilhado , dados mutáveis e efeitos colaterais . A programação funcional é declarativa (dizendo ao computador o que você quer fazer) em vez de imperativa (informando ao computador exatamente como fazer isso), e o estado do aplicativo flui através de funções puras. Compare-o com a programação orientada a objetos, em que o estado do aplicativo é geralmente compartilhado e co-localizado com métodos em objetos.

Por que programação funcional?

  • Geralmente é mais conciso
  • Geralmente é mais previsível
  • É mais fácil testar do que código orientado a objetos

Adoção por programação de idiomas

Muitas linguagens de programação suportam programação funcional como Haskell, F #, Common Lisp, Clojure, Erlang, OCaml. O JavaScript também possui as propriedades de uma linguagem funcional não tipificada.

Usos

A programação funcional tem sido popular na academia, mas com poucas aplicações industriais. No entanto, recentemente várias linguagens de programação funcionais proeminentes foram usadas em sistemas comerciais ou industriais. Por exemplo, a linguagem de programação Erlang, que foi desenvolvida pela empresa sueca Ericsson no final dos anos 80, é usada para criar uma variedade de aplicativos em empresas como a T-Mobile, a Nortel, o Facebook, a Eletricité de France e o WhatsApp.

Funções de ordem superior

Funções de ordem superior são uma grande parte da programação funcional. Uma função de ordem superior é uma função que recebe uma função como parâmetro ou retorna uma função.

Mapa

map é uma função de ordem superior que chama uma função para cada elemento de uma lista e retorna os resultados como uma nova lista.

Aqui está um exemplo de map :

const myList = [6, 3, 5, 29]; 
 
 let squares = myList.map(num => num * num); // [36, 9, 25, 841] 

Mais Informações: