O que é F# Interativo?

Concluído

Às vezes, você não quer passar pelo processo de criação, empacotamento e distribuição de um aplicativo. F# Interactive é um ambiente interativo de programação e scripting. Simplifica a passagem da ideia ao código, permitindo-lhe escrever e avaliar o código em tempo real através da consola ou de ficheiros de script autónomos.

Iniciando o F# Interativo

O F# Interactive está integrado no SDK do .NET. Você pode iniciá-lo com o comando .NET CLI dotnet fsi .

dotnet fsi

Leitura-Avaliação-Impressão-Loop (REPL)

Iniciar o F# Interactive lança você em uma sessão de leitura-avaliação-impressão-loop (REPL), onde você pode escrever seu código F# e avaliar imediatamente sua saída no console.

Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.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 > personagem.

> #help;;

Por exemplo, se você executar o #help comando, a saída mostrará o menu de ajuda interativo F#.

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
    #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
    #quit;;                                       // Exit
    
F# Interactive command line options:

    See 'dotnet fsi --help' for options

O final de uma expressão é delimitado pelos ;; caracteres. Nenhum código é avaliado até que você insira os ;; caracteres. Essa estrutura é útil ao escrever expressões de várias linhas, uma vez que seu código não é delimitado por novos caracteres de 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!";;

O resultado avaliado é:

Hello World!
val it : unit = ()

A primeira linha exibe a saída do código avaliado, enquanto a segunda linha exibe as informações de tipo da saída. Nesse caso, a saída de valor para o console é do tipo unit, que é representado pelo () token e vinculado ao it nome. Você pode acessar o it valor mais tarde em seu programa se quiser executar mais operações.

Saindo do REPL

Depois de usar o F# Interactive REPL, use os #q comandos ou #quit para sair.

> #q;;

Arquivos de script FSX

À medida que você escreve mais código, você pode salvar seu código em um script com a extensão de arquivo fsx .

Se você usar o mesmo exemplo de impressão de uma mensagem no console, poderá criar um arquivo chamado my-script.fsx para escrever seu código.

printfn "Hello World!"

Uma coisa a notar é 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# Interactive é capaz de usar diretrizes padrão de formatação de código F#, como recuo e novas linhas.

Em vez de compilar o código-fonte e, posteriormente, executar o assembly compilado, você pode simplesmente executar dotnet fsi e especificar o nome do arquivo de script que contém o código F#, e o F# interativo lê o código e o executa em tempo real.

dotnet fsi my-script.fsx

A execução desse script produz a seguinte saída.

Hello World!