{"id":19943604,"url":"https://github.com/elyosemite/peregrine","last_synced_at":"2025-08-11T04:09:40.724Z","repository":{"id":158990989,"uuid":"634280641","full_name":"elyosemite/Peregrine","owner":"elyosemite","description":"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.","archived":false,"fork":false,"pushed_at":"2025-07-31T23:33:08.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T01:36:26.273Z","etag":null,"topics":["elixir","elixir-lang"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elyosemite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-29T16:12:17.000Z","updated_at":"2025-07-31T23:33:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"46003781-2a8a-468f-a9ee-5ce7b797c1fc","html_url":"https://github.com/elyosemite/Peregrine","commit_stats":null,"previous_names":["elyosemite/peregrine"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elyosemite/Peregrine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FPeregrine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FPeregrine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FPeregrine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FPeregrine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elyosemite","download_url":"https://codeload.github.com/elyosemite/Peregrine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyosemite%2FPeregrine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269827850,"owners_count":24481588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","elixir-lang"],"created_at":"2024-11-13T00:17:21.616Z","updated_at":"2025-08-11T04:09:40.702Z","avatar_url":"https://github.com/elyosemite.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peregrine\n\n## Descrição do Projeto\nO 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.\n\n## Princípios da Programação Funcional\nA programação funcional é um paradigma que se baseia em alguns princípios fundamentais. Aqui estão os 15 principais pilares da programação funcional:\n\n- `Imutabilidade`: Os dados são imutáveis, ou seja, não podem ser alterados após a criação.\n- `Funções Puras`: As funções não possuem efeitos colaterais e retornam um valor com base apenas em seus argumentos.\n- `Ausência de Estado Compartilhado`: Não há compartilhamento de estado entre as funções.\n- `Transparência Referencial`: O resultado de uma função depende apenas de seus argumentos e não de qualquer estado externo.\n- `Composição de Funções`: Funções podem ser combinadas para criar funções mais complexas.\n- `Recursão`: A recursão é usada em vez de loops para controlar a repetição.\n- `Tipagem Forte`: O tipo de cada valor é conhecido e verificado em tempo de compilação.\n- `Polimorfismo Paramétrico`: Funções podem ser genericamente aplicadas a diferentes tipos de dados.\n- `Funções de Alta Ordem`: Funções podem receber outras funções como argumentos ou retorná-las como resultado.\n- `Closures`: Funções podem capturar e lembrar o ambiente em que foram definidas.\n- `Avaliação Preguiçosa`: A execução é adiada até que o resultado seja realmente necessário.\n- `Expressões e Avaliação`: Tudo é uma expressão e a avaliação retorna um valor.\n- `Composição de Estado`: O estado é encapsulado em estruturas imutáveis e transformado através de funções.\n- `Transparência de Referência`: Igualdade de referência implica em igualdade de valor.\n-`Inspirado em Matemática`: A programação funcional é baseada em conceitos matemáticos, como álgebra lambda e teoria dos conjuntos.\n\n## Sugestões para o Projeto Peregrine\nAqui estão algumas sugestões para explorar e aprofundar seus estudos no projeto Peregrine:\n\n- Comece com os conceitos básicos: Familiarize-se com a sintaxe e estruturas de controle da linguagem Elixir, como funções, condicionais e listas.\n- 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.\n- 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.\n- 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.\nExplore 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n\n## Contribuindo\nSe 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.\n\n## Licença\nO projeto Peregrine é licenciado sob a licença MIT.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyosemite%2Fperegrine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felyosemite%2Fperegrine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyosemite%2Fperegrine/lists"}