Mostly adequate guide to FP (in javascript, translated in portuguese)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
code
images
.gitignore
CONTRIBUTING-pt-BR.md
CONTRIBUTING.md
LICENSE.md
README-original.md
README.md
SUMMARY.md
TRANSLATIONS-pt-BR.md
TRANSLATIONS.md
ch1-pt-BR.md
ch10.md
ch2-pt-BR.md
ch3-pt-BR.md
ch4-pt-BR.md
ch5-pt-BR.md
ch6-pt-BR.md
ch7-pt-BR.md
ch8-pt-BR.md
ch9-pt-BR.md
ch9.md
cover.jpg

README.md

Sobre o livro

Este livro é sobre o paradigma funcional. E para aprender, usaremos a linguagem funcional mais popular do mundo: JavaScript. Alguns pensam que essa linguagem não é uma boa escolha por acharem que ela é predominantemente imperativa. No entanto, acredito que é a melhor forma de aprender FP por vários motivos:

  • Você provavelmente usa JavaScript no seu trabalho:

    Isso torna possível a prática e a aplicação dos conhecimentos adquiridos em projetos reais, e não somente em pequenos projetos criados em seu tempo livre com linguagens puramente funcionais.

  • Nós não temos que aprender absolutamente tudo antes, para começar a programar.

    Em uma linguagem funcional pura, você não pode declarar uma variável ou ler um nó do DOM sem usar monads. Aqui aprendemos a purificar nosso código com algumas trapaças. E também é mais fácil de começar com JavaScript, pois ele possui uma mistura de paradigmas, e você pode usar suas práticas comuns enquanto não possui todos os conhecimentos necessários.

  • A linguagem é totalmente capaz de escrever código funcional de alto nível.

    Nós temos tudo que precisamos para simular linguagens como Scala ou Haskell com o auxílio de uma ou duas bibliotecas. Atualmente OOP (Object-oriented programing/Programação Orientada a Objetos) é dominante no mercado, e claramente em JavaScript isso é um pouco desajeitado. Seria como "acampar no meio de uma estrada" ou "fazer sapateado usando botas de borracha". Nós temos que usar bind em todos lugares onde queremos usar o escopo do this, nós não temos classes[ainda], temos que tratar o comportamento do new quando o mesmo é esquecido de ser invocado, membros privados são apenas disponíveis por meio de closures. E por isso, para muitos de nós, FP parece ser mais natural.

Dito isto, programar em linguagem funcional será sem dúvida a melhor forma de aprender os conceitos propostos neste livro. JavaScript será o meio de aprendermos este paradigma, onde você mesmo é quem irá aplicá-lo. Felizmente, todas as interfaces são matemáticas e portanto universais. Você se sentirá familiarizado com linguagens como Swift, Scala, Haskell, Purescript e outros ambientes matematicamente inclinados.

Gitbook (para uma melhor experiência)

Faça você mesmo

git clone https://github.com/MostlyAdequate/mostly-adequate-guide-pt-BR

cd mostly-adequate-guide-pt-BR/
npm install gitbook-cli -g
gitbook init

brew update
brew cask install calibre

gitbook mobi . ./functional.mobi

Conteúdo

Veja SUMMARY.md

Contribuir

Veja CONTRIBUTING.md

Traduções

Veja TRANSLATIONS.md

Planos para o futuro

  • Parte 1: É um guia para as noções básicas. Estou atualizando conforme encontro erros, pois este é apenas um esboço inicial. Sinta-se a vontade para ajudar!
  • Parte 2: Abordar tipos de classes (type class) como functors, monads e traversable . E espero encontrar um tempo para abordar transformers e criar uma aplicação de fato pura.
  • Parte 3: Unir a programação prática com as maluquices acadêmicas. Veremos comonads, f-algebras, free monads, yoneda, e outras construções categóricas