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!
Essa tabela tem como sua principal função, me situar e me acostumar com a sintaxe demonstrada no livro.
| Português Funcional | Haskell |
|---|---|
| const | definição indireta |
| var | definição indireta |
| se | if |
| então | then |
| senão | else |
| número | a$ |
| lógico | Bool |
| lista número | [a] |
| nada | [] |
| -o- | round |
| -o- | Ord |
| -o- | Eq |
| escreva | |
| .verdadeiro. | True |
| .falso. | False |
| # | ++ |
| >> | -> |
| << | = |
| ^ | ^, ^^ or ** |
| / | / |
| mod | mod |
| div | div |
| + | + |
| - | - |
| * | * |
| .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.