Как многие из вас знают, я парень из C#. Поэтому, если я просто хочу что-то попробовать, я обычно просто открываю LINQPad и пробую что-то там. Если всё разрастается и мне нужно больше контроля над экспериментами, я откажусь от LINQPad и разверну приложение ConsoleApplication в Visual Studio. Оба эти подхода работают нормально, но было бы неплохо, если бы существовала какая-то среда, в которой вы могли бы попробовать что-то внутри самой Visual Studio, даже не создавая новый проект.

К счастью, в F# это есть.

Существует совершенно блестящий инструмент под названием «Интерактивное окно F#» (FSI), который вы можете найти с помощью Visual Studio (я использую VS 2012), например:

image

Как только вы откроете интерактивное окно F#, вы должны увидеть что-то вроде этого:

image

Сейчас это может показаться не таким уж грандиозным, но это окно позволяет довольно легко делать очень много вещей. Оно может быть использован для быстрого прототипирования и проверки, если хотите.

Таким образом, вы можете видеть, что у вас есть prompt(приглашение)>, которое ожидает вашего ввода. Давайте введём что-то?

Даём ввод


Все, что Вам нужно сделать в интерактивном окне F#, чтобы получить какой-либо ввод, это завершить вашу строку двумя точками с запятой «;;».

Некоторые валидные примеры правильного ввода приведены ниже

Объявление функции, которая примет значение и возведет его в квадрат (обратите внимание, мы не указали тип x):

let squarer x = x * x;;

А теперь давайте объявим переменную, которая будет содержать возвращаемое значение вызова функции «squarer». Это легко сделать следующим образом:

let squared = squarer 10;;

Отображение данных


Если мы хотим просмотреть данные, мы также можем оценить вещи аналогичным образом. Таким образом, предполагая, что мы только что ввели значения выше, у нас будет следующее:

  1. Функция квадрата
  2. Int тип возвращаемый функцией

Таким образом, чтобы оценить одно из них, скажем, «squared», мы можем просто напечатать что-то вроде этого в строку ввода FSI:

squared;;

Когда мы запускаем эту строку в FSI, происходит то, что значение выводится в окно FSI, что-то вроде этого:

val it : int = 100

Где видно, что значение действительно равно 100, что является результатом более раннего вызова функции «squarer», которая была создана в окне FSI.

Ещё одна крутая штука перед окончанием


Прежде чем мы закончим эту статью, я просто хотел бы упомянуть, что вы также можете использовать окно FSI вместе с файлом сценария F#, если вы хотите попробовать что-то быстро.

Скажем, у меня был файл сценария F# (FSX) со следующим кодом в нем:

open System
 
let squareRootMe x = System.Math.Sqrt(x)

И я хотел попробовать это в FSI, я могу просто выделить строки / раздел кода и выбрать его выполнение в окне FSI.

image

Теперь это в области видимости окна FSI. Что означает, что я могу использовать функцию, как показано здесь:

>  let x =    squareRootMe 144.0;;
 
val x : float = 12.0

Комментарии (4)


  1. danilstepa
    03.10.2019 22:50

    Вы очень большой молодец, что переводите статьи, но студия 2012 уже немного не актуальна, и было бы очень чудесно, если бы вы актуализировали данные. Например, в данный момент, по умолчанию в VS для быстрого запуска FSI используется сочетание Alt + Enter, в Rider ctrl + \.

    Примерно так


  1. Wyrd
    03.10.2019 23:02

    В 2017 студии и старше уже сто лет как есть C# interactive. И язык учить не надо.


    1. danilstepa
      03.10.2019 23:13

      Ну если, только из-за interactive, тогда да) Но у языка же, есть свои прелести


  1. ahanoff
    04.10.2019 06:56

    Вообще-то уже .net core 3.0 и FSI доступен в dotnet cli
    dotnet fsi

    devblogs.microsoft.com/dotnet/announcing-f-4-7