Xamarin e F#

Primeiros passos com o F# para Xamarin

Qualquer programador já ouviu falar sobre linguagem funcional e sobre linguagens como ARC, Lisp, Haskell, ML, Scala e Wolfram. Mas você sabe o que é uma programação funcional? Conhece o F# ? Que tal conhecer?

Vamos falar um pouco sobre a linguagem que foi criada pelo DR. Don Syme para a Microsoft com base em Scala, OCaml e C#.

 

Entendendo F#

A linguagem F# é sucinta, expressiva e altamente eficiente, é uma linguagem de programação funcional híbrida para o .NET criada  em 2005 pelo DR. Don Syme no Instituto Microsoft de Pesquisa em Cambridge que foi inserida no Visual Studio 2010 junto com seu projeto Open-Source.

O paradigma de programação funcional trata toda a programação como uma equação/expressão matemática. Podemos colocar como exemplo de programação híbrida o uso da biblioteca System.Linq do C#.  Sendo assim, você passa a pensar matematicamente para programar, o que vai além da simples lógica de programação.

O F#, assim como toda linguagem funcional evita trabalhar com estados ou dados mutáveis e passa a trabalhar somente com funções, assim trazendo 3 grandes benefícios: Paralelização, Performance e Previsões – você passa a saber o que vai acontecer antes mesmo de ter acontecido.

A Tríade da Imutabilidade

Paralelização – Diferente do C#, que quando iniciadas 2 Thread’s  enviando uma variável (alocação na memoria) o valor dessa variável é compartilhado e modificado simultaneamente e o resultado é alterado de acordo com o processo e assim podendo gerar bugs difíceis de se resolver já que elas não são executadas ao mesmo tempo, o F# inicia e executa as Threads exatamente ao mesmo tempo e por contar com o fator ‘imutabilidade’ o valor da alocação da memoria não é alterado, já que a cada calculo ou tentativa de mudança é criada um valor novo, assim resolvendo grande parte dos bugs da programação assíncrona

Performance – A Imutabilidade permite que o compilador Just-In-Time (JIT) possa criar um código muitos mais limpo e que evita a concorrência de dados já que qualquer alocação não tem seu valor alterado. Quando inserido uma função de calculo no F#, como por exemplo ‘let soma = 2 + 3 * 5 + 1’ o compilador receber 4 valores e a cada operação matemática a quantidade desse valores dá espaço para novos valores. Ocorreria algo do tipo:

Entrada -> 2 + 3 * 5 + 1 -> Saída ->  2 + 15 + 1

Entrada ->  2 + 15 + 1   -> Saída -> 17 + 1

Entrada -> 17 + 1 -> Saída -> 18

Qualquer função é executada da mesma forma, assim diminuindo a quantidade de alocações em memoria.

Previsões –  Os dados podem ser localizados e usados da melhor forma e é diminuído efeitos colaterais como resultados não esperados já que os valores não são mutáveis.

Sintaxe Inicial

A Linguagem é case sensitivity

Os Comentários são feitos com // para comentário inline e utilizado (**) para comentário em linhas múltiplas.

Não é utilizado ‘;’ para finalizar comandos, apenas a quebra de linha.

Todos os TIPOS disponíveis no C# existem no F#, mas não é necessário declarar o tipo ao setar um valor.

let – o comando let cria VALORES – linguagens como o F# trabalham com valores não variáveis.

Por padrão os valores após serem declarados não podem ser modificados.

Exemplos:

let x = 10

let palavra = “Programando”

 

printfn – Para fazer algo parecido com o Console.WriteLine utilizamos o printfn.

Exemplos:

printfn “Mensagem impressa”

let palavra = “impressa”

printfn “Mensagem %s” palavra

 

 

IF THEN ELSE – As expressões de decisão são feitas da seguinte forma: if expressão then código else código

 

Funções – Os métodos são declarados de forma um pouco diferente é necessário seguir a indentação  de um “tab” no lugar das {}  e os parâmetros não são enviados dentro de () como por exemplo:

C#

int somar (int a, int b){

return a + b;

}

 

F#

let somar a b

a + b

Considerações Finais

Esse primeiro post traz uma pequena introdução ao F# mostrando algumas diferenças entre essa linguagem e o C#. Vamos, como o passar dos dias, criar exemplos de aplicações mobile utilizando o F#.  Algumas coisas como Loops, Constraints, Expressões e Querys não foram abordadas ainda, mas vamos mostrando com o tempo.

Deem uma olhada no site oficial da linguagem para mais exemplos e detalhes.

E você leitor, já utilizou o F#? Criou uma aplicação? Encontrou empecilhos? Deixe um comentário!

Abraços!

Primeiros passos com o F# para Xamarin 5.00/5 (100.00%) 2 votos

Rafael Moura

Desenvolvedor .NET, mais de 5 anos de experiência, apaixonado por tecnologia, Xamarin Student Partner Regional Lead Central/South America, Xamarin Comunity Speaker, Xamarin Certified Mobile Developer e Windows Phone Developer.

2 comentários em “Primeiros passos com o F# para Xamarin

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

%d blogueiros gostam disto: