F# é uma linguagem de programação funcional que roda na plataforma .NET, desenvolvida pela Microsoft e pela comunidade open-source. Ela combina programação funcional, orientação a objetos e programação imperativa, sendo uma excelente escolha para desenvolvimento robusto, seguro e conciso.
return, {} e ;.let), tornando o código mais previsível e seguro.Vamos ver exemplos práticos de F# para entender melhor como ele funciona.
let nome = "Ricardo"
let idade = 30
printfn "Nome: %s, Idade: %d" nome idade
📌 As variáveis em F# são imutáveis por padrão. Para criar uma mutável, usamos mutable:
let mutable contador = 0
contador <- contador + 1
printfn "Contador: %d" contador
let soma x y = x + y
printfn "2 + 3 = %d" (soma 2 3)
📌 Não precisa de return, pois F# retorna automaticamente o último valor da função.
let aplicarOperacao operacao x y = operacao x y
let resultado = aplicarOperacao (+) 10 5
printfn "Resultado: %d" resultado // 15
📌 Aqui, aplicarOperacao recebe uma função como parâmetro (+, -, *, etc.).
let numeros = [1; 2; 3; 4; 5]
let dobrados = List.map (fun x -> x * 2) numeros
printfn "%A" dobrados // [2; 4; 6; 8; 10]
let pares = List.filter (fun x -> x % 2 = 0) numeros
printfn "%A" pares // [2; 4]
let soma = List.fold (+) 0 numeros
printfn "Soma: %d" soma // 15
📌 map transforma os valores, filter filtra elementos e fold reduz a lista a um único valor.
let rec fatorial n =
if n = 0 then 1
else n * fatorial (n - 1)
printfn "Fatorial de 5: %d" (fatorial 5)
📌 Recursão é a abordagem funcional para repetição, substituindo for e while.
let quadrado = fun x -> x * x
printfn "%d" (quadrado 4) // 16
📌 O fun x -> define uma função anônima (lambda).
let dobrar x = x * 2
let incrementar x = x + 1
let dobrarDepoisIncrementar = dobrar >> incrementar
printfn "%d" (dobrarDepoisIncrementar 3) // 7
📌 >> compõe funções: primeiro dobrar, depois incrementar.
let tarefaLonga() =
async {
do! Async.Sleep 2000
return "Tarefa concluída!"
}
let resultado = Async.RunSynchronously (tarefaLonga())
printfn "%s" resultado
📌 async {} cria tarefas assíncronas, otimizando o uso de CPU.
✅ Machine Learning (com ML.NET e F# Data)
✅ Processamento de dados e ETL
✅ Desenvolvimento Web (usando ASP.NET e Giraffe)
✅ Sistemas financeiros e científicos
✅ Concorrência e computação paralela
O F# é uma linguagem poderosa e concisa para programação funcional na plataforma .NET, combinando eficiência, segurança e interoperabilidade com C#. Ele é ideal para aplicações que exigem alta confiabilidade, como sistemas financeiros e científicos.