Skip to content
This repository was archived by the owner on Aug 4, 2025. It is now read-only.

zoedsoupe/functional_programming_basics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Introdução a Programação Funcional

Sobre

Este repositório tem a finalidade de abrigar meus estudos e resoluções dos exercícios propostos pelo livro “Algoritmos Funcionais”, escrito pelo José Augusto Navarro. Também pretendo extender esse repositório com os estudos pessoais desenvolvidos a parit de outras bibliografias sobre o assunto, logo, existirá uma pasta para cada bibliografia.

Nele, é apresentada de forma introdutória, o paradigma declaritivo funcional aplicado à teoria dos conjuntos. A forma primordial de expressão dos códigos apresentados no livro, é por meio do “português funcional”, porém também são utilizadas as linguagens Hope e Haskell.

O foco deste repositório é resolver e expandir os desafios e exercícios do livro, primordialmente utilizando a linguagem funcional pura Haskell, por decisões pessoais.

Tenho em mente em criar outros repositórios onde abrigarei a resolução de exercícios de sites de desafio - como o Hackerrank ou exercism - além da implementação de algoritmos já conhecidos no ramo da Ciência da Computação em diversas outras linguagens nas quais possuo interesse, como: Erlang, Elixir, Clojure, entre outros dialetos de LISP.

ps: ESTE REPOSITÓRIO NÃO TEM A INTENÇÃO DE SER UMA COMPLETA REVISÃO DAS BIBLIOGRAFIAS CITADAS, E SIM APRESENTAR NOTAS E RESUMOS DOS MEUS ESTUDOS PESSOAIS QUE PODEM SER USADOS COMO BASE PARA O INICÍO DOS ESTUDOS DE OUTRAS PESSOAS!

Tabela de tradução “português funcional” -> Haskell

Essa tabela tem como sua principal função, me situar e me acostumar com a sintaxe demonstrada no livro.

Português FuncionalHaskell
constdefinição indireta
vardefinição indireta
seif
entãothen
senãoelse
númeroa$
lógicoBool
lista número[a]
nada[]
-o-round
-o-Ord
-o-Eq
escrevaprint
.verdadeiro.True
.falso.False
#++
>>->
<<=
^^, ^^ or **
//
modmod
divdiv
++
--
**
.e.&&
.ou.| |
.não.not
>>
<<
>=>=
<=<=
===
<>/=
| x (lambda)definição indireta

$ O tipo a, pode significar, dependendo da situação operacional, os tipos: Int, Double, Integer, RealFrac, Fractional Integral ou Floating, além de ocorrer às vezes, o uso do recurso fromIntegral.