Справочник по F# Interactive (fsi.exe)
F# Interactive (fsi.exe) используется для интерактивного запуска кода F# в консоли или для выполнения скриптов F#.Другими словами, F# Interactive выполняет команду REPL (чтение, оценка, цикл печати) для языка F#.
Интерактивное программирование при помощи F#
F# Interactive можно использовать для написания кода в консоли или в окне Visual Studio.
Чтобы открыть F# Interactive из консоли, запустите fsi.exe.Дополнительные сведения о доступных параметрах командной строки см. в разделе Параметры F# Interactive.
Чтобы запустить F# Interactive через Visual Studio 2010, нажмите на соответствующую кнопку панели инструментов, обозначенную F# Interactive, или используйте сочетание клавиш CTRL+ALT+F.После этого откроется интерактивное окно — окно инструментов с запущенным сеансом F# Interactive.Вы также можете выбрать код, который вы хотите запустить в интерактивном окне, и нажать сочетание клавиш ALT+ENTER.Интерактивный режим F# открывается в окне инструментов, обозначенном F# Interactive.При использовании это сочетание клавиш, убедитесь, что окно редактора имеет фокус.
Независимо от того, пользуетесь вы консолью или Visual Studio 2010, появится командная строка и интерпретатор будет ждать ввода данных.Вы можете ввести код так же, как это делается в файле кода.Чтобы скомпилировать и выполнить код, введите две точки с запятой (;;), чтобы разграничить одну или несколько линий входных данных.
Интерактивный режим F# попытается скомпилировать файл и, в случае удачи, выполнит код и напечатает сигнатуру типов и значений, которые он скомпилировал.В случае ошибки интерпретатор напечатает сообщения об ошибке.
Код, введенный в том же сеансе, имеет доступ ко всем конструктам, введенным прежде, так что вы можете надстраивать программы.Широкий буфер в окне инструментов позволяет вам копировать код в файл в случае необходимости.
При запуске в Visual Studio F# Interactive работает независимо от проекта, поэтому, например, использовать определенные в проекте конструкции в F# Interactive можно, только если скопировать код функции в интерактивное окно.
Управлять аргументами (параметрами) командной строки F# Interactive можно, корректируя значения параметров F# Interactive.В меню Сервис выберите Параметры... и разверните узел Инструменты F#.2 Параметра, можно изменить параметры интерактивной 64-разрядный интерактивный F# F# и параметр, который действителен только при запуске F# interactive на компьютере с пакетом обновления 64 (sp2).Этот параметр указывает, следует ли выполнять преданная 64-разрядная версия 64 или fsianycpu.exe fsi.exe, архитектура компьютера, чтобы определить, используется ли выполняться как 32 или 64 процесс.
Написание скрипта с использованием F#
Для скриптов используется расширение файла .fsx или .fsscript.Вместо того чтобы скомпилировать исходный код и затем запустить скомпилированную сборку, вы можете просто открыть fsi.exe и указать имя файла скрипта исходного кода F#, а F# Interactive прочтет код и выполнит его в реальном времени.
Различия между интерактивной средой, скомпилированной средой и средой сценария
При компиляции кода в F# Interactive, независимо от того, запущен он интерактивно или для выполнения скрипта, определяется символ INTERACTIVE.При компиляции кода в компиляторе определяется символ COMPILED.Таким образом, если код должен различаться в режиме компиляции и в интерактивном режиме, вы можете использовать директивы препроцессора для условной компиляции, для того чтобы определить, что именно использовать.
Некоторые директивы, недоступные при выполнении компилятора, доступны при выполнении скриптов в F# Interactive.В следующей таблице приведены директивы, доступные при использовании F# Interactive.
Директива |
Описание |
---|---|
#help |
Отображает сведения о доступных директивах. |
#I |
Задает путь поиска сборок в кавычках. |
#load |
Читает исходный файл, компилирует и выполняет его. |
#quit |
Завершает сеанс F# Interactive. |
#r |
Ссылается на сборку. |
#time ["on"|"off"] |
Сама по себе директива #time включает или выключает отображение сведений о производительности.Когда она включена, F# Interactive измеряет реальное время, время ЦП и фиксирует данные о сборке мусора для каждого интерпретированного и выполненного раздела кода. |
При указании файлов или путей в F# Interactive ожидается строковый литерал.Следовательно, файлы и пути должны быть заключены в кавычки; можно использовать обычные escape-символы.Также можно использовать символ @, чтобы строка, содержащая путь, интерпретировалась в F# Interactive как буквальная строка.В этом случае F# Interactive игнорирует все escape-символы.
Одно из различий между скомпилированным и интерактивным режимами заключается в том, как можно получить доступ к аргументам командной строки.В скомпилированном режиме используйте GetCommandLineArgs.В скриптах пользуйтесь fsi.CommandLineArgs.
Данный код показывает, как создавать функцию, читающую аргументы командной строки в скрипте, и как давать ссылку на другую сборку из сценария.Первый файл кода, MyAssembly.fs, является кодом для сборки, на которую дается ссылка.Скомпилируйте этот файл при помощи командной строки fsc -a MyAssembly.fs и выполните второй файл в качестве скрипта при помощи командной строки fsi --exec file1.fsx test
// MyAssembly.fs
module MyAssembly
let myFunction x y = x + 2 * y
// file1.fsx
#r "MyAssembly.dll"
printfn "Command line arguments: "
for arg in fsi.CommandLineArgs do
printfn "%s" arg
printfn "%A" (MyAssembly.myFunction 10 40)
Выходные данные выглядят следующим образом.
file1.fsx
test
60
Связанные разделы
Заголовок |
Описание |
---|---|
Описывает синтаксис командной строки и параметры для F# Interactive, fsi.exe. |
|
Описывает функциональные возможности библиотек, которые доступны при выполнении кода в F# Interactive. |