Minha primeira linguagem funcional: Elixir

Elixir é uma linguagem funcional que vem ganhando bastante espaço nos últimos tempos. É bom para pensar um pouco fora da caixa, principalmente para quem está acostumado a programar usando apenas linguagens imperativas (C, Java, etc.), como euzinha aqui. Dentre os maiores paradigmas de programação, a funcional é a mais antiga!

As linguagens funcionais podem ser compreendidas como avaliações de expressões feitas pelo computador, em que uma função pode envolver outras funções (se você quiser saber mais, procure sobre Cálculo Lambda).

Fiz o curso Try Elixir, do CodeSchool (gratuito e bem rápido, corre lá!). Nessa mesma semana em que tive meu primeiro contato com Elixir, tivemos uma revisão de funções compostas na faculdade e pra mim foi bem legal ver esses conceitos matemáticos assim diretamente aplicados.

Em Matemática, por exemplo, podemos fazer várias funções dentro de funções. Considere

f(x) = sen(x);
g(x) = log(x);
h(x) = x⁴;

Podemos fazer a seguinte composição das funções acima: f(j(h(x))), ou seja,

sen(log(x⁴))

Assim, pensei em implementar essa função composta em Elixir e para fazer isso, vamos usar o pipe operator. Ele funciona assim (veja mais aqui):

O operador pipe é representado por |>, recebe o resultado de uma expressão e passa ele adiante. Vamos dar mais uma olhada no trecho de código acima reescrito com o operador pipe:

other_function() |> new_function() |> baz() |> bar() |> foo()
O pipe pega o resultado da esquerda e o passa para o lado direito.

Usamos a biblioteca :math, que é a mesma usada em Erlang, ficando assim:


defmodule CompositeFunction do
  def my_example(x) do
    result = :math.pow(x, 4)
    |> :math.log()
    |> :math.sin()
    IO.puts(result)
  end
end

Para rodar local, digite iex para entrar no compilador, depois c(“composite_function.ex”) e depois CompositeFunction.my_example(seu_argumento). E Voilà!

Rodando CompositeFunction.my_example(5) no terminal, ele retorna:
0.15395162623403327
:ok

Espero que curtam, até a próxima!

Fita de Möbius e Escher

Este ano na Semana Unificada de Apresentações do Senac tivemos uma atividade bem legal com a profa. Danielle dos Santos Mingatos (Dani para os conhecidos xD). Foi uma atividade de integração entre os cursos de Ciência da Computação e Engenharia de Computação.

A Dani falou do Escher (já tem post aqui sobre a oficina do ano passado) e fizemos algo beeeem legal: a fita de Möbius! August Ferdinand Möbius foi um matemático alemão do século XIX e ficou bem conhecido com a fita que levou seu nome. Mas não se engane, não é qualquer fita não: trata-se de uma superfície bidimensional não orientada com um lado passando a ser tridimensional no espaço euclidiano quando uma das pontas é torcida (ufa!).

Escher captou bem esse conceito e criou várias obras com essa temática, inclusive se chamam Fita de Möbius. Fica aí a dica de pesquisa para você se divertir nas férias =D

No canal do Numberphile tem dois vídeos muuuito legais com o Tadashi brincando com isso! À medida que você for vendo, tenho certeza de que você terá essa reação:

Adoro este canal, pois eles sempre fazem coisas interessantes e explicam numa linguagem possível de ser compreendida por qualquer um. Como o Tadashi fala, Matemática quando apresentada com uma postura divertida e envolvente É MUITO LEGAL, já o contrário, bom, relembre suas aulas de Matemática :/ (eu foi só trauma, espero que com você não xD).

Escher e seus loops infinitos

Já falei também da professora Eugenia Cheng e ela também postou um vídeo sobre Möbius, mas com…. bagels!

É isso, espero que curtam os vídeos! Tentem fazer em casa também, tenho certeza que vai ser divertido:)

 

Escher – Matemática e Arte

No mês passado, participei da oficina de Matemática e Arte, ministrada pela profa. Danielle Mingatos, professora e coordenadora de Computação do Senac. Foram 3 encontros no total. Gostei muito da proposta e vou falar um pouquinho do que rolou.

A oficina começou no dia 9 de Novembro com uma introdução sobre Escher, um cara muito foda que provavelmente você já deve ter muito por aí, mas não sabia quem era (meu caso xD).

Reconheceu?
Reconheceu?

A Dani nos levou a refletir sobre uma coisinha muito importante na vida: você pode até não gostar de Matemática, mas você deve pelo menos compreendê-la. Escher é um artista muito legal para entender conceitos geométricos, mais especificamente padrões. E ele também dizia não compreender nada de Matemática, mas suas obras são estudadas ao redor do mundo por explorar princípios matemáticos. Isso mesmo! Você pode conferir no site oficial todas as fases e obras fantásticas dele.

Padrões geométricos estão em todo lugar: na Medicina, na Engenharia, nos favos de mel, na sequência de Fibonacci, nos flocos de neve, nos girassóis… enfim, vale a pena buscar mais sobre esses padrões, você vai perceber que não é algo longe da sua realidade e que é bem curioso.

Pesquisando sobre a vida dele, vi que ele nunca teve muita aptidão para a escola. Ainda que gostasse de desenho, nunca tirou notas altas, só o suficiente para passar. Seus pais esperavam que ele seguisse a carreira de engenheiro, mas, como diz uma frase sua excepcional our path through life can take strange turns. Eu gostei muito dessa parte da vida dele, porque eu acho que muita gente se martiriza por não ser o 1º ou não saber muito da vida.

Escher criou padrões complexos da Matemática, como o infinito
Escher criou padrões complexos da Matemática, como o infinito

Ele criou obras utilizando conceitos de simetria como reflexão, translação e rotação. Nesse site muito legal e interativo da PUC, você pode ver o que significa e como funciona cada um desses conceitos e sua aplicação em algumas obras dele.

No segundo encontro, nós criamos nossa própria obra! Colocamos mão na massa e foi bem desafiador. Eu comecei fazendo corações e fui vendo o que saía. Usando a translação, vi no final que formava um octágano entre elas. Assim saiu minha primeira obra explorando padrões geométricos:

Matemática e Arte é puro amor
Matemática e Arte é puro amor

Casal simetria do ano
Casal simetria do ano

12249867_1227643320585163_535347427566532120_n12274453_1227643647251797_7233616498428204666_n

Fica aí a dica para fazer algo diferente nas férias. Que tal criar um padrão geométrico seu? É mais fácil do que você pensa e ainda é terapêutico!