SlideShare uma empresa Scribd logo
1 de 18
Evandro Souza
 É linguagem multi-paradigma(OO, imperativa) -> functional-first;
 Solucionar problemas complexos com códigos simples / elegantes;
 Encoraja a imutabilidade do código;
 É compativel com bibliotecas .NET
Por que F#?
Onde posso utilizar?
http://fsharp.org
https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work/
Conceitos fundamentais
 Functions != Classes, objects, methods.
 Functions são cidadões de primeira classe.
Functions
bike->moto
Tunel da transformação
Functions -> inputs e outputs
let add x = (fun y -> x + y) Int->(int->int)
Output function
int->intint
let useFn f = f() + 1 Int->(int->int)
Input function
int->int int
Int->int
parameter functionint->int
int int
let tranfInt f x= (f x) + 1
Compositions
bike->carro
Function C
bike->moto moto->carro
Function A Function B
 Types != Classes
 São imutaveis
 Não possuem valor “null”
Types
let inteiro = 1 //val inteiro : int
type Cliente = {Codigo : int;
RazaoSocial : string}
let cliente = {Codigo = 1;
RazaoSocial = "Gambiarra Ltda"} //val cliente : Cliente
let func x = x+1
let func1 = func //val func1 : (int -> int)
Record type
A não ser que use o operador mutable
Types Compositions
Conjunto de pessoas Conjunto de datas
João, 12 Janeiro
Maria, 15 Dezembro
José, 17 Junho
Product Type
type pessoa = {Nome:string; Sobrenome:string}
type data = {Dia:int; Mes:int; Ano:int}
type aniversario = pessoa * data
let pessoa1 = { Nome = "João"; Sobrenome="Silva"}
let dia11Janeiro = {Dia = 11; Mes=1; Ano=1989}
let aniversario = (pessoa1, dia11Janeiro)
Tuple type
Types Compositions
Dinheiro
Cartão de crédito
Cheque
type pagamento =
| Dinheiro of double
| Cheque of double
| CartaoCredito of string * string * double
let tipoCheque = CartaoCredito("EVANDRO F SOUZA",
"454545454",
100.00)
Sum Type
 Similar ao swith do C#
Match Expressions
let tipoCliente x=
match x with
| 1 -> "Cliente normal"
| 2 -> "Cliente vip"
| _ -> "Não definido"
public string TipoCliente(int x)
{
switch (x)
{
case 1: return "Cliente normal";
case 2: return "Cliente vip";
default: return "Não definido";
}
}
Não é opcional
Operador Pipe forward
 Maneira elegante funcional de passar parâmetros para uma função
let square x = x * x
let toStr x = x.ToString()
let rev (x : string) = new string (Array.rev (x.ToCharArray()))
let result = rev (toStr (square 9))
9 81 “81” “18"
let result = 9 |> square |> toStr |> rev
Web Scraping
HTML
Tecnologia
Web scraping
Dados
estruturados
Web Scraping
F#
Web Scraping com F#
Necessidade
https://www.jucerja.rj.gov.br/JucerjaPortalWeb/Paginas/Informacoes/TabelaPrecosPWJ.aspx
Solução F#
Solução C#
Obrigado!
evandroferreiras
evandroferreiras
evandroferreiras

Mais conteúdo relacionado

Mais procurados

Introdução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveisIntrodução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveisgbpf
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoRegis Magalhães
 
Expressão analítica de uma função quadrática
Expressão analítica de uma função quadráticaExpressão analítica de uma função quadrática
Expressão analítica de uma função quadráticaPaulo Mutolo
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoRegis Magalhães
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_javaMarcos Souza
 
Bons cheiros, como programar melhor ?
Bons cheiros, como programar melhor ?Bons cheiros, como programar melhor ?
Bons cheiros, como programar melhor ?COTIC-PROEG (UFPA)
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelasRicardo Bolanho
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05profwtelles
 

Mais procurados (19)

Revisao php
Revisao phpRevisao php
Revisao php
 
Introdução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveisIntrodução ao php - Tipos de variáveis
Introdução ao php - Tipos de variáveis
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
 
Expressão analítica de uma função quadrática
Expressão analítica de uma função quadráticaExpressão analítica de uma função quadrática
Expressão analítica de uma função quadrática
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
 
Php02
Php02Php02
Php02
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
 
Dip the dependency inversion principle
Dip   the dependency inversion principleDip   the dependency inversion principle
Dip the dependency inversion principle
 
Bons cheiros, como programar melhor ?
Bons cheiros, como programar melhor ?Bons cheiros, como programar melhor ?
Bons cheiros, como programar melhor ?
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelas
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Linguagem C 02 String
Linguagem C 02 StringLinguagem C 02 String
Linguagem C 02 String
 
Php básico
Php básicoPhp básico
Php básico
 
Guia de Referência do PHP - Variáveis
Guia de Referência do PHP - VariáveisGuia de Referência do PHP - Variáveis
Guia de Referência do PHP - Variáveis
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05
 

Semelhante a Web Scraping com F Sharp

RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxMarceloRosenbrock1
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresRegis Magalhães
 
Python em (mais de) 10 minutinhos
Python em (mais de) 10 minutinhosPython em (mais de) 10 minutinhos
Python em (mais de) 10 minutinhosRudá Moura
 
Aula01
Aula01Aula01
Aula01vdlos
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Programação funcional tipada: uma introdução
Programação funcional tipada: uma introduçãoProgramação funcional tipada: uma introdução
Programação funcional tipada: uma introduçãoArthur Xavier
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoPaulo Morgado
 

Semelhante a Web Scraping com F Sharp (20)

Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
Linguagem c parte 2
Linguagem c parte 2Linguagem c parte 2
Linguagem c parte 2
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Unidade7 1
Unidade7 1Unidade7 1
Unidade7 1
 
Fundamentos de C#
Fundamentos de C#Fundamentos de C#
Fundamentos de C#
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
 
Python em (mais de) 10 minutinhos
Python em (mais de) 10 minutinhosPython em (mais de) 10 minutinhos
Python em (mais de) 10 minutinhos
 
Haskell
HaskellHaskell
Haskell
 
Aula01
Aula01Aula01
Aula01
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
Programação funcional tipada: uma introdução
Programação funcional tipada: uma introduçãoProgramação funcional tipada: uma introdução
Programação funcional tipada: uma introdução
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 

Web Scraping com F Sharp

Notas do Editor

  1. Junta comercial de RJ