{"id":31807868,"url":"https://github.com/vitorribe/erlang_paradigmas","last_synced_at":"2025-10-11T04:38:32.940Z","repository":{"id":306941464,"uuid":"1027740182","full_name":"VitorRibe/Erlang_Paradigmas","owner":"VitorRibe","description":"Repositório para atividades relacionadas ao paradigma funcional com o uso da linguagem Erlang.","archived":false,"fork":false,"pushed_at":"2025-07-28T16:11:41.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-05T01:29:49.242Z","etag":null,"topics":["erlang","functional-programming"],"latest_commit_sha":null,"homepage":"","language":null,"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/VitorRibe.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-28T13:12:25.000Z","updated_at":"2025-07-28T16:13:42.000Z","dependencies_parsed_at":"2025-07-28T16:09:23.515Z","dependency_job_id":"01460576-b70b-47d6-8b00-4b2fd9a0d480","html_url":"https://github.com/VitorRibe/Erlang_Paradigmas","commit_stats":null,"previous_names":["vitor-ribe/erlang_paradigmas","vitorribe/erlang_paradigmas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VitorRibe/Erlang_Paradigmas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VitorRibe%2FErlang_Paradigmas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VitorRibe%2FErlang_Paradigmas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VitorRibe%2FErlang_Paradigmas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VitorRibe%2FErlang_Paradigmas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VitorRibe","download_url":"https://codeload.github.com/VitorRibe/Erlang_Paradigmas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VitorRibe%2FErlang_Paradigmas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006243,"owners_count":26084061,"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-10-11T02:00:06.511Z","response_time":55,"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":["erlang","functional-programming"],"created_at":"2025-10-11T04:38:25.439Z","updated_at":"2025-10-11T04:38:32.933Z","avatar_url":"https://github.com/VitorRibe.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Erlang_Paradigmas\nRepositório para atividades relacionadas ao paradigma funcional com o uso da linguagem Erlang.\n\n## História da Linguagem 🕰️\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"imagens/logo.jpg\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\nErlang foi criada na década de 1980 pela Ericsson, uma empresa sueca de telecomunicações. O objetivo era desenvolver sistemas de telecom robustos, tolerantes a falhas e com alta disponibilidade. Joe Armstrong, Robert Virding e Mike Williams foram os principais criadores. A linguagem foi aberta ao público em 1998. Erlang se destaca pelo modelo de concorrência baseado em processos leves e isolamento, sendo usada em sistemas que exigem alta confiabilidade como servidores de telefonia, bancos e mensageria (ex: WhatsApp).\n\n## Instalação do Erlang ⚙️\n\n### Ubuntu\n\n```\nbash\n\n  sudo apt update\n  sudo apt install -y erlang\n```\n\nPara inicializar o terminal Erlang:\n```\nbash\n\n  erl\n```\n\nPara finalizar o terminal Erlang:\n```\nerlang\n\n  q().\n```\n\n## Hello World 🌎\n### - Criação de um arquivo\n\nPara criar um arquivo básico em Erlang, abra o terminal na pasta que deseja salvar o arquivo. e digite o comando:\n```\nbash\n\n  nano boas_vindas.erl\n```\n\nO editor será aberto, onde vc poderá escrever o seguinte código:\n```\nerlang\n\n-module(boas_vindas).\n-export([ola_mundo/0]).\n\nola_mundo() -\u003e  \n  io:format(\"Olá, mundo!~n\").\n```\n\u003e Para entender o que cada linha faz,  acesse [boas_vindas.erl](https://github.com/Vitor-Ribe/Erlang_Paradigmas/blob/main/examples/boas_vindas.erl).\n\nSalve e feche o editor. \u003cbr\u003e\u003cbr\u003e\n\n\n\n### - Compilando o arquivo\nPara compilar, abra o terminal na pasta do arquivo e digite ```erl```.\n\nO shell interativo do Erlang será aberto.\n```\nerlang\n\n% Compila o arquivo que foi criado\nc(boas_vindas).\n\n% Chama a função ola_mundo\nboas_vindas:ola_mundo().\n```\n\n\nSaída esperada:\n```\nEshell V13.2.2.5  (abort with ^G)\n1\u003e c(boas_vindas).\n{ok,boas_vindas}\n2\u003e boas_vindas:ola_mundo().\nOlá, mundo!\nok\n3\u003e \n```\n\n## Exemplos em Erlang\n\n- [Fatorial](https://github.com/Vitor-Ribe/Erlang_Paradigmas/blob/main/examples/fatorial.erl)\n- [Soma de números de uma lista](https://github.com/Vitor-Ribe/Erlang_Paradigmas/blob/main/examples/soma.erl)\n- [Filtrar pares de uma lista com funções de ordem superior](https://github.com/Vitor-Ribe/Erlang_Paradigmas/blob/main/examples/par_ordem_superior.erl)\n- [Filtrar pares de uma lista com recursividade](https://github.com/Vitor-Ribe/Erlang_Paradigmas/blob/main/examples/par_recursivo.erl)\n\n\u003cbr\u003e\n\n### Somar números de uma lista ➕\n```\nerlang\n\nsoma_lista([]) -\u003e\n\t0;\n\nsoma_lista([H | T]) -\u003e\n\tH + soma_lista(T).\n```\n\u003e Adiciona o primeiro numero da lista (H) com o resultado do restante da lista recursivamente.\n\n\n\u003cbr\u003e\u003cbr\u003e\n\n### Filtrar pares de uma lista 🔍\n\nÉ possível filtrar os pares de uma lista com funções de ordem superior e com recursão.\u003cbr\u003e\n\n**Ordem Superior:**\n```\nerlang\n\n  pares(Lista) -\u003e\n    lists:filter(fun(X) -\u003e X rem 2 == 0 end, Lista).\n```\n\u003e ```lists:filter``` É uma função de ordem superior pronta que já vem com o Erlang. Ela serve para percorrer uma lista e manter apenas os elementos que passam em um teste.\n\nImagina que você está passando números por uma peneira:\n\n- Sua lista é: [1, 2, 3, 4, 5, 6].\n- Sua \"peneira\" (função Fun) só deixa passar números pares.\n\n\u003cbr\u003e\n\n**Recursão**\n```\nerlang\n\nfiltrar_pares([]) -\u003e \n    [];\n\nfiltrar_pares([H|T]) when H rem 2 == 0 -\u003e\n    [H | filtrar_pares(T)];\n\nfiltrar_pares([_H|T]) -\u003e\n    filtrar_pares(T).\n```\n- ```[H|T]```: separa a lista em H (cabeça) e T (cauda)\n- ```when H rem 2 == 0```: verifica se H é par\n- ```[H | filtrar_pares(T)]```: constrói a nova lista incluindo esse elemento e continua a recursão com o restante da lista\n- ```([_H|T])```:Se H não é par, então ignora esse elemento\n- ```filtrar_pares(T).```: Só continua a recursão com T (cauda)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitorribe%2Ferlang_paradigmas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvitorribe%2Ferlang_paradigmas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitorribe%2Ferlang_paradigmas/lists"}