Что такое 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!