Olá amigos! Neste artigo vou introduzir o F#, mas o que vem a ser o F#?
O F# é uma linguagem funcional criada pela Microsoft, que deriva do ML, uma metalinguagem desenvolvida no final dos anos 70s, que possui uma base na matemática.
Linguagens funcionais tratam a computação como funções matemáticas evitando estados ou dados mutáveis, enquanto a linguagem convencional (imperativa) baseia-se em mudança de estados no programa.
O F# pode, por exemplo, retornar uma função como resultado de outra função.
Imaginemos uma planilha do MS-Excel, com muitas células interligadas com funções matemáticas e consultas a outras planilhas. Quando mudamos um valor de uma célula, ele re-processa apenas as células relacionadas com a que mudamos, e não a Planilha toda (o que levaria muito tempo e nos deixaria extremamente insatisfeitos com a ferramenta!!!).
O F# possui um comportamento semelhante, ao alterarmos valores, ele re-processa apenas o necessário, sendo extremamente poderoso quando quisermos fazer programas com um processamento pesado.
Quantas vezes já não tivemos problemas de "lentidão" quando geramos relatórios que envolvem muitos cálculos, ou muito trabalho com textos. O F# pode nos ajudar a otimizar e melhorar a performance das aplicações.
O F# também é muito poderoso com árvores de dados, podendo achar padrões em textos de uma forma mais eficiente do que a expressão regular, sendo muito bem requisitado em sistemas de datamining. Em mercados financeiros, por exemplo, pode ter uma grande contribuição, analisado dados e permitindo sempre tomar uma decisão de investimento mais segura. Pode também ter grande utilização em áreas biológicas, como análises estatísticas que auxiliam no descobrimento de novas curas ou até em análises de comportamento animal.
Tomando proveito do processamento em matriz, com diversos núcleos de processamento, e de processamento em paralelo, o F# permite um bom desempenho, podendo ainda interagir diretamente com outras linguagens como o C#, tendo acesso direto a todos os APIs do .net Framework, como Directx, Windows Presentation Foundation, entre outros.
Sabemos que hoje em dia os jogos estão cada vez mais sofisticados, adaptando-se ao modo de jogar do jogador e criam diferentes situações, sendo únicas para cada jogador. Com isso, estamos criando algoritmos cada vez mais complexos, às vezes aproximando-os da inteligência artificial. Com o F#, é possível ganhar vantagem no desenvolvimento de jogos, dando uma melhor experiência para o jogador.
Atualmente, há ferramentas como o MathLab, Mathemática e outras, que possuem grande quantidade de bibliotecas. Estes softwares são muito utilizados em projetos de engenharia, biologia, física, e outros que utilizam muito cálculo.
Semelhante a linguagem dinâmica, como o Ruby, não é necessário declarar explicitamente o tipo de variável. O F# "descobre" o tipo da variável durante o tempo de execução.
Outros exemplos de linguagens funcionais são: CAML (derivado do ML), APL, Erlang, Haskell, Lisp, ML, and Scheme.
O F# incorpora recursos da plataforma .net, e possui algumas características como:
open System
open System.Windows.Forms
let form = new Form()
do form.Width <- 400
do form.Height <- 300
do form.Text <- "Hello World Form"
(* Menu bar, menus *)
let mMain = form.Menu <- new MainMenu()
let mFile = form.Menu.MenuItems.Add("&File")
let miQuit = new MenuItem("&Quit")
let _ = mFile.MenuItems.Add(miQuit)
(* RichTextView *)
let textB = new RichTextBox()
do textB.Dock <- DockStyle.Fill
do textB.Text <- "Hello World\n\nCongratulations!"
do form.Controls.Add(textB)
(* callbacks *)
let opExitForm sender args = form.Close ()
do miQuit .add_Click (new EventHandler(opExitForm))
(* run! *)
do Application.Run(form)
Se você salvar o arquivo como:
\dev\src\helloforms.fsAssumindo que fsc é o caminho, você pode compilar o código seguindo as linhas abaixo:
cd \dev\srcfsc \dev\src\helloforms.fs
helloforms.exeÉ importante conhecermos outras linguagens, para sempre expandir nossos horizontes. Quanto mais conhecemos, melhor poderá ser a nossa decisão nos projetos, e seremos mais eficientes.
Espero que tenham gostado!
Forte Abraço.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.