Globalcode – Open4education
Trilha .NET – Programação funcional usando
F#
Gabriel Schade Cardoso
Microsoft MVP | Software Engineer | Mestre em Computação Aplicada |
Professor | Escritor
Globalcode – Open4education
Mestre em Computação Aplicada (IA)
Microsoft MVP – Dev. Technologies
Software Engineer
Revisor
Escritor
Gabriel Schade Cardoso
Globalcode – Open4education
Programação Funcional
Quem aqui sabe o que é isso?
Isso é o ícone da F# Foundation
F# também é .NET
Globalcode – Open4education
Programação Funcional
Programação funcional é difícil
Programação funcional é diferente
Globalcode – Open4education
Programação Funcional
Interfaces
Polimorfismo
Herança
Encapsulamento
Generics
SOLID
...
Funtores;
Unions;
Currying;
Aplicação Parcial;
Monads;
Unions;
...
Globalcode – Open4education
Programação Funcional
Programação funcional é bem diferente de
programação orientada à objetos;
Podemos aprender muito com F#;
É um paradigma diferente;
Globalcode – Open4education
Programação Funcional
Ao aprender um novo paradigma, você aprende uma
nova forma de ver os problemas.
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
Binding > Assignment
Globalcode – Open4education
Programação Funcional
Imutabilidade por padrão
Globalcode – Open4education
Programação Funcional
Não definimos tipos
São fortemente tipados
Globalcode – Open4education
Programação Funcional
Funções são valores
Globalcode – Open4education
Programação Funcional
Funções são valores
Globalcode – Open4education
Programação Funcional
Criação rápida de tipos para seu domínio
Globalcode – Open4education
Programação Funcional
Dá pra usar no C#
Globalcode – Open4education
Programação Funcional
Inclusive ele respeita a imutabilidade
Globalcode – Open4education
Programação Funcional
Dá pra verificar o equivalente em C# do tipo Pessoa
Globalcode – Open4education
Programação Funcional
Criação rápida de tipos para seu domínio
Globalcode – Open4education
Programação Funcional
Utilizamos Pipeline |>
E composição >>
Globalcode – Open4education
Programação Funcional
Pipeline é utilizado para enfileirar várias operações,
sempre jogando o valor antes do operador para a
função após o operador
Globalcode – Open4education
Programação Funcional
Como usamos?
Globalcode – Open4education
Programação Funcional
Composição é utilizado para criar novas funções a
partir das existentes conectando a saída de uma como
entrada da próxima
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
Features próprias
Option
Globalcode – Open4education
Programação Funcional
O Option indica onde uma operação pode ou não
retornar um valor.
Globalcode – Open4education
Programação Funcional
O Option indica onde uma operação pode ou não
retornar um valor.
Globalcode – Open4education
Programação Funcional
Features próprias
Option
Unidades de Medida
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
Unidades de medida causam erros de compilação
Globalcode – Open4education
Programação Funcional
Features próprias
Option
Unidades de Medida
Type Providers
Globalcode – Open4education
Programação Funcional
Type Providers carregam valores dinâmicos baseados
em um target.
Planilhas de Excel
Serviços REST
World Bank
HTML
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
É possível gerar um tipo apontando para o HTML
dessa página:
Globalcode – Open4education
Programação Funcional
Agora vamos acessar um dado específico:
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
Agora vamos acessar um dado específico:
Globalcode – Open4education
Programação Funcional
Percorrer a coleção tratando os dados:
Globalcode – Open4education
Programação Funcional
Globalcode – Open4education
Programação Funcional
Posso exibir isso no Console:
Globalcode – Open4education
Programação Funcional
Ou gerar um gráfico...
Globalcode – Open4education
Programação Funcional
Features próprias
Option
Unidades de Medida
Type Providers
Geração de Gráficos com facilidade
Globalcode – Open4education
Programação Funcional
Usando o Chart do GoogleCharts:
Globalcode – Open4education
Programação Funcional
/gabrielschade /gabrielschade
medium.com/@gabrielschade
https://gabrielschade.github.io

Trilha .Net - Programacao funcional usando f#