O que é o F# Interativo?
Algumas vezes, você pode não querer passar por todo o processo de criação, empacotamento e distribuição de um aplicativo. O F# Interativo é um ambiente interativo de programação e script. Ele simplifica a passagem da ideia para o código ao permitir que você escreva e avalie código em tempo real por meio do console ou de arquivos de script autônomos.
Iniciar o F# Interativo
O F# Interativo é integrado ao SDK do .NET. Você pode iniciá-lo com o comando da CLI dotnet fsi do .NET.
dotnet fsi
Read-Evaluate-Print-Loop (REPL)
Ao iniciar o F# Interativo, você é levado a uma sessão REPL (Read-Evaluate-Print-Loop), na qual você pode escrever o código F# e avaliar imediatamente a saída do código no console.
Microsoft (R) F# Interactive version 13.9.201.0 for F# 9.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
Executar e avaliar expressões
Para avaliar sua entrada, você deve inseri-la após o caractere >.
> #help;;
Por exemplo, se você executar o comando #help, a saída mostrará o menu de ajuda do F# Interativo.
F# Interactive directives:
#r "file.dll";; // Reference (dynamically load) the given DLL
#i "package source uri";; // Include package source uri when searching for packages
#I "path";; // Add the given search path for referenced DLLs
#load "file.fs" ...;; // Load the given file(s) as if compiled and referenced
#time ["on"|"off"];; // Toggle timing on/off
#help;; // Display help
#help "idn";; // Display documentation for an identifier, e.g. #help "List.map";;
#r "nuget:FSharp.Data, 3.1.2";; // Load Nuget Package 'FSharp.Data' version '3.1.2'
#r "nuget:FSharp.Data";; // Load Nuget Package 'FSharp.Data' with the highest version
#clear;; // Clear screen
#quit;; // Exit
F# Interactive command line options:
See 'dotnet fsi --help' for options
Os caracteres ;; delimitam o final de uma expressão. Os códigos só são avaliados depois de você inserir os caracteres ;;. Essa estrutura é útil ao escrever expressões com várias linhas, já que seu código não é delimitado por caracteres de nova linha.
A avaliação do código F# funciona da mesma maneira. O código a seguir imprime uma mensagem no console.
> printfn "Hello World!";;
A saída avaliada é:
Hello World!
val it: unit = ()
A primeira linha exibe a saída do código avaliado, enquanto a segunda linha exibe as informações do tipo de saída. Nesse caso, o valor (val) exibido no console é do tipo unit, que é representado pelo token () e associado ao nome it. Você pode acessar o valor it posteriormente em seu programa se quiser executar mais operações.
Saindo do REPL
Depois de usar o REPL do F# Interativo, use os comandos #q ou #quit para sair.
> #q;;
Arquivos de script F#
À medida que você escreve mais código, você pode salvá-lo em um script com a extensão de arquivo fsx.
Se você usar o mesmo exemplo de impressão de uma mensagem no console, pode criar um arquivo chamado my-script.fsx para escrever o código.
printfn "Hello World!"
É importante observar que, em arquivos fsx, você não precisa usar ;; no final de suas expressões. Você não precisa disso porque, em arquivos de script, o F# Interativo é capaz de usar as diretrizes de formatação de código F# padrão, como recuo e novas linhas.
Em vez de compilar o código-fonte para depois executar o assembly compilado, é possível apenas executar dotnet fsi e especificar o nome do arquivo do script de código-fonte F#, pois assim o F# interativo lerá o código e o executará em tempo real.
dotnet fsi my-script.fsx
A execução desse script produz a saída a seguir.
Hello World!