
Tutorial: Exportando Imagens Base64 Usando Laravel Excel
Neste tutorial, vamos aprender como exportar uma lista de cadastros de clientes para uma planilha Excel, incluindo as fotos dos... Leia mais
Desenvolvedor de Software
A programação funcional está se tornando cada vez mais popular devido à sua simplicidade e capacidade de lidar com paralelismo e concorrência de forma eficiente. Este post explora os conceitos básicos da programação funcional, exemplificando com a linguagem Elixir.
Para iniciarmos uma projeto em Elixir basta abrir o terminal e digitar o comando
mix new nome_do_projeto
Para rodar o projeto, utilize:
$ iex -S mix
Após toda alteração é necessário recopilar o projeto e para isso basta digitar no terminal o comando “recompile” e após esse comando basta novamente escrever on terminal o nome do módulo seguido da função. Por exemplo: Modulo.funcao_hello_world().
Antes de avaçarmos no conteúdo para uma melhor compreensão vamos fazer uma comparação entre uma linguagem POO(programação orientada e objetos) e o paradigma funcional proposto pelo elixir.
No Python, para converter uma string para letras minúsculas, usamos um método de um objeto:
string = "HELLO"
print(string.lower()) # Saída: hello
Em Elixir, a abordagem é diferente, focando em funções puras:
string = "HELLO"
IO.puts String.downcase(string) # Saída: hello
Em um primeiro momento momento a sintaxe é muito parecida mas em Elixir fazemos uso o módulo String e depois de uma função chamado downcase.
Imutabilidade garante que os dados não podem ser alterados após a sua criação, permitindo um uso mais eficiente de recursos como paralelismo e threads.
defmodule Functional do
def hello do
user_data = %{name: "John", age: 30, email: "john.doe@gmail.com"}
user_data = Map.put(user_data, :name, "Jane")
IO.inspect(user_data)
end
end
Functional.hello()
O operador |>
é utilizado para encadear funções, facilitando a composição de operações complexas.
# Exemplo de composição de função
defmodule Functional do
@moduledoc """
Documentation for `Functional`.
"""
@doc """
Hello world.
## Examples
iex> Functional.hello()
:world
"""
def hello do
# Composição de Função. |> pipe operator
%{ name: "John", age: 30,email: "jhon.doe@gmail.com"} # cria uma variável com um mapa
|> put_map(:name, "John Doe") # altera o valor de uma chave
|> IO.inspect() # imprime o valor do mapa
|> put_map(:age, 31) # adiciona uma chave
|> delete_map_value(:age) # deleta uma chave
end
# defp é privado
defp put_map(map, key, value) do
Map.put(map, key, value)
end
defp delete_map_value(map, key) do
Map.delete(map, key)
end
end
Funções de alta ordem recebem outras funções como argumento ou retornam funções como resultado. Em Elixir, podemos usar o módulo Enum
para manipular coleções.
defmodule Functional do
def hello do
%{name: "John", age: 30, email: "john.doe@gmail.com"}
|> put_map(:name, "John Doe")
|> put_map(:age, 31)
|> Enum.map(fn {key, value} -> IO.puts("#{key}: #{value}") end)
end
defp put_map(map, key, value) do
Map.put(map, key, value)
end
end
Functional.hello()
Uma função pura é aquela que, para a mesma entrada, sempre retorna o mesmo resultado e não altera nenhum estado externo.
defmodule Functional do
def add(a, b) do
a + b
end
end
IO.puts Functional.add(2, 3) # Saída: 5
Na programação funcional, funções podem ser atribuídas a variáveis e passadas como argumentos.
add = fn (a, b) -> a + b end
IO.puts add.(2, 3) # Saída: 5
A programação funcional proporciona uma abordagem poderosa e flexível para o desenvolvimento de software. Com Elixir, podemos escrever código que é ao mesmo tempo eficiente e fácil de manter. Ao adotar práticas como funções puras, composição de funções, imutabilidade e funções de alta ordem, conseguimos criar aplicações mais robustas, compreensíveis e menos propensas a erros.
Elixir se destaca por sua capacidade de lidar com concorrência e paralelismo de forma eficiente, aproveitando o modelo de atores do Erlang. Isso o torna ideal para sistemas distribuídos e aplicações de alta performance.
Se você está acostumado com a programação orientada a objetos, experimentar a programação funcional pode abrir novas perspectivas sobre como estruturar e organizar seu código. A simplicidade e a clareza proporcionadas pela programação funcional podem levar a um desenvolvimento mais rápido e a um código mais fácil de testar e manter.
Para aprofundar seu conhecimento em Elixir e programação funcional, recomendo explorar a documentação oficial de Elixir e praticar com exemplos reais. A adoção dessas técnicas pode transformar significativamente a maneira como você aborda a resolução de problemas no desenvolvimento de software.
Neste tutorial, vamos aprender como exportar uma lista de cadastros de clientes para uma planilha Excel, incluindo as fotos dos... Leia mais
Elixir é uma linguagem de programação dinâmica e funcional, desenvolvida por José Valim em 2011, projetada para construir aplicações escaláveis... Leia mais
Nesta semana o Postgres vem me desafiando, e meu pc também, porque por algum motivo o PGADMIN está demorando uma... Leia mais
Para instalar o docker no ubuntu basta seguir os passos abaixo: Abra o terminal do Linux copie e cole os... Leia mais