Что такое F# Interactive?

Завершено

Иногда вы не хотите проходить через процесс создания, упаковки и распространения приложения. F# Interactive — это интерактивная среда программирования и скриптов. Это упрощает переход от идеи к коду, позволяя писать и оценивать код в режиме реального времени через консоль или автономные файлы скриптов.

Запуск F# Interactive

F# Interactive встроен в пакет SDK для .NET. Его можно запустить с помощью команды .NET CLI dotnet fsi .

dotnet fsi

Цикл чтения-оценки-печати (REPL)

Запуск F# Interactive запускает сеанс цикла чтения-оценки-печати (REPL), в котором вы можете написать свой код F# и немедленно оценить его вывод в консоли.

Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.0 
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

>

Запускать и оценивать выражения

Чтобы оценить ваш ввод, вы должны ввести его после символа >.

> #help;;

Например, при выполнении команды выходные #help данные отображают меню справки F# Interactive.

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

Конец выражения разделен символами ;; . Никакой код не оценивается, пока вы не введете символы ;;. Эта структура полезна при написании многостроковых выражений, так как код не разделен новыми символами строк.

Вычисление кода F# выполняется аналогичным образом. Следующий код выводит сообщение на консоль.

> printfn "Hello World!";;

Вычислимые выходные данные:

Hello World!
val it : unit = ()

В первой строке отображается результат оцениваемого кода, а во второй строке — информация о типе вывода. В этом случае значение, выводимое на консоль, имеет тип unit, который представлен токеном () и привязан к имени it. Вы можете получить доступ к значению it позже в своей программе, если захотите выполнить больше операций.

Завершение работы REPL

После использования интерактивной rePL F# используйте #q команды или #quit команды для выхода.

> #q;;

файлы скриптов fsx

По мере написания кода вы можете сохранить его в сценарии с расширением файла fsx.

Если вы используете тот же пример печати сообщения в консоль, можно создать файл с именем my-script.fsx для записи кода.

printfn "Hello World!"

Обратите внимание, что в FSX-файлах не нужно использовать ;; в конце выражений. Вам не нужно, так как в файлах скриптов F# Interactive может использовать стандартные рекомендации по форматированию кода F#, такие как отступы и новые строки.

Вместо компиляции исходного кода и последующего запуска скомпилированной сборки вы можете просто запустить dotnet fsi и указать имя файла сценария, содержащего ваш код F#, и F# interactive считывает код и выполняет его в реальном времени.

dotnet fsi my-script.fsx

Запуск этого сценария дает следующий результат.

Hello World!