An open API service indexing awesome lists of open source software.

https://github.com/elyosemite/peregrine

The Elixir Study Project is a personal project aimed at learning the Elixir programming language and exploring its ecosystem. The project will involve building a simple web application that allows users to create and manage to-do lists.
https://github.com/elyosemite/peregrine

elixir elixir-lang

Last synced: 11 months ago
JSON representation

The Elixir Study Project is a personal project aimed at learning the Elixir programming language and exploring its ecosystem. The project will involve building a simple web application that allows users to create and manage to-do lists.

Awesome Lists containing this project

README

          

# Peregrine

## Descrição do Projeto
O projeto Peregrine é um repositório no GitHub dedicado ao estudo e prática da programação funcional utilizando a linguagem Elixir. Aqui você encontrará exemplos, exercícios e recursos para aprofundar seus conhecimentos nesse paradigma de programação.

## Princípios da Programação Funcional
A programação funcional é um paradigma que se baseia em alguns princípios fundamentais. Aqui estão os 15 principais pilares da programação funcional:

- `Imutabilidade`: Os dados são imutáveis, ou seja, não podem ser alterados após a criação.
- `Funções Puras`: As funções não possuem efeitos colaterais e retornam um valor com base apenas em seus argumentos.
- `Ausência de Estado Compartilhado`: Não há compartilhamento de estado entre as funções.
- `Transparência Referencial`: O resultado de uma função depende apenas de seus argumentos e não de qualquer estado externo.
- `Composição de Funções`: Funções podem ser combinadas para criar funções mais complexas.
- `Recursão`: A recursão é usada em vez de loops para controlar a repetição.
- `Tipagem Forte`: O tipo de cada valor é conhecido e verificado em tempo de compilação.
- `Polimorfismo Paramétrico`: Funções podem ser genericamente aplicadas a diferentes tipos de dados.
- `Funções de Alta Ordem`: Funções podem receber outras funções como argumentos ou retorná-las como resultado.
- `Closures`: Funções podem capturar e lembrar o ambiente em que foram definidas.
- `Avaliação Preguiçosa`: A execução é adiada até que o resultado seja realmente necessário.
- `Expressões e Avaliação`: Tudo é uma expressão e a avaliação retorna um valor.
- `Composição de Estado`: O estado é encapsulado em estruturas imutáveis e transformado através de funções.
- `Transparência de Referência`: Igualdade de referência implica em igualdade de valor.
-`Inspirado em Matemática`: A programação funcional é baseada em conceitos matemáticos, como álgebra lambda e teoria dos conjuntos.

## Sugestões para o Projeto Peregrine
Aqui estão algumas sugestões para explorar e aprofundar seus estudos no projeto Peregrine:

- Comece com os conceitos básicos: Familiarize-se com a sintaxe e estruturas de controle da linguagem Elixir, como funções, condicionais e listas.
- Pratique com exercícios simples: Escreva pequenas funções puras para resolver problemas básicos, como cálculos matemáticos simples ou manipulação de listas.
- Aprofunde-se em funções de alta ordem: Estude como passar funções como argumentos e retorná-las como resultados de outras funções. Explore conceitos como map, reduce e filter.
- Domine a recursão: Resolva problemas mais complexos usando recursão em vez de loops. Aprenda a usar a recursão de cauda para otimizar o desempenho.
Explore a biblioteca padrão: Estude as funções e módulos disponíveis na biblioteca padrão do Elixir. Experimente com diferentes módulos, como List, Enum e Map.
- Entenda a concorrência e tolerância a falhas: Aprenda sobre processos e como a linguagem Elixir lida com concorrência e tolerância a falhas usando o modelo de atores.
- Experimente com programação assíncrona: Explore o uso de Tasks e GenServers para lidar com operações assíncronas e comunicação entre processos.
- Conheça as OTP (Open Telecom Platform): Estude os conceitos e padrões fornecidos pela OTP, como Supervisors e GenServers, para construir sistemas robustos e escaláveis em Elixir.
- Contribua para projetos open source: Encontre projetos Elixir de código aberto no GitHub e faça contribuições para a comunidade. Isso ajudará você a aprender com outros desenvolvedores e aprimorar suas habilidades.
- Participe de comunidades online: Junte-se a fóruns, grupos e canais de discussão relacionados à linguagem Elixir e programação funcional. Compartilhe seus conhecimentos e aprenda com os outros.
- Explore frameworks e bibliotecas: Experimente frameworks e bibliotecas populares em Elixir, como Phoenix, Ecto e Broadway, para construir aplicativos web, acessar bancos de dados e processar dados em lote.
- Realize projetos práticos: Desenvolva pequenos projetos pessoais usando Elixir e programação funcional. Isso ajudará você a aplicar seus conhecimentos e ganhar experiência na prática.
- Mantenha-se atualizado: Acompanhe as atualizações da linguagem Elixir e as tendências da programação funcional. Leia blogs, livros e artigos relevantes para se manter informado sobre as novidades.
- Colabore e compartilhe: Compartilhe seu código, projetos e conhecimentos com a comunidade. Participe de eventos, workshops e conferências para conhecer outros entusiastas da programação funcional.
- Divirta-se e persista: A programação funcional pode apresentar desafios, mas também é uma abordagem poderosa e gratificante. Divirta-se enquanto aprende e persista mesmo diante das dificuldades.

## Contribuindo
Se você quiser contribuir para o projeto Peregrine, sinta-se à vontade para abrir problemas (issues) ou enviar pull requests com melhorias, correções ou novos recursos. Estamos abertos a receber contribuições da comunidade e valorizamos seu envolvimento.

## Licença
O projeto Peregrine é licenciado sob a licença MIT.