Создадим первую программу на языке F#. Для написания кода программы нам понадобится текстовый редактор. В принципе можно выбрать любой понравившийся текстовый редактор, например, Visual Studio Code, который является бесплатным, доступен для всех основных операционных систем: Windows, MacOS, Linux и который доступен по ссылке загрузить Visual Studio Code
Второй необходимый компонент для создания программ - компилятор. Для компиляции, построения, запуска и ряда других задач Microsoft предоставляет набор инструментов (или еще называется фреймворком), который называется .NET SDK. .NET SDK является кроссплатформенным фреймворком и доступен для всех основных операционных систем.
Для операционных систем на базе Linux можно использовать разные методы установки: установить через пакетный менеджер, установить вручную или с помощью скрипта. Рассмотрим самый простой способ - установки через пакетный менеджер. Так, для установки .NET SDK 8.0 на ОС Ubuntu и Debian через пакетный менеджер apt надо выполнить следующую команду
sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-8.0
Для установки на Fedora через пакетный менеджер dnf применяется команда
sudo dnf install dotnet-sdk-8.0
На других системах на базе Linux могут применяться другие пакетные менеджеры.
Для установки .NET SDK под Windows можно использовать специальный установщик. Загрузим его с официального сайта со страницы https://dotnet.microsoft.com/en-us/download.
На странице https://dotnet.microsoft.com/en-us/download/dotnet/8.0 при необходимости можно найти все возможные варианты SDK под различные архитектуры и системы.
После загрузки запустим установщик .NET SDK:
Для MacOS самый простой способ установки также заключается в использовании программу установщика, которая доступна на официальном сайте на странице https://dotnet.microsoft.com/en-us/download.
После установки, чтобы убедиться, что все установлено и настроено правильно, мы можем проверить версию .NET, выполнив в командной строке/консоли команду dotnet --version:
C:\Users\eugen>dotnet --version 8.0.100 C:\Users\eugen>
И после установки .NET SDK создадим первый проект. Для этого будем использовать набор консольных утилит .NET CLI.
И вначале создадим каталог для проектов на .NET (вручную или с помощью команды mkdir). Пусть каталог будет dotnet и будет располагаться в текущей папке пользователя. Откроем терминал и перейдем к этому каталогу с помощью команды cd.
C:\Users\eugen>mkdir fsharp C:\Users\eugen>cd fsharp C:\Users\eugen\fsharp>
Для создания проекта в .NET CLI применяется команда dotnet new, которой передается тип проекта. Мы будем создавать консольное приложение, поэтому будем
использовать тип console
. Итак, в введем в терминале следующую команду:
dotnet new console -lang "F#" -o helloapp
В данном случае мы указываем, что создаваемый проект будет представлять консольное приложение (console), а с помощью опции -o
можно указать название проекта. То есть
проект будет называться helloapp. Кроме того, опции -lang
надо передать значение "F#", что означает, что мы создаем проект для языка F#. При выполнении команды консоль отобразит некоторую базовую информацию
C:\Users\eugen\fsharp>dotnet new console -lang "F#" -o helloapp Шаблон "Консольное приложение" успешно создан. Идет обработка действий после создания... Восстановление C:\Users\eugen\fsharp\helloapp\helloapp.fsproj: Определение проектов для восстановления... Восстановлен C:\Users\eugen\fsharp\helloapp\helloapp.fsproj (за 1,01 sec). Восстановление выполнено. C:\Users\eugen\fsharp>
После выполнения этой команды в папке helloapp будет создан проект с минимальным набором стандартных файлов и папок:
helloapp.fproj: главный файл проекта, который описывает его конфигурацию
Program.fs: файл с кодом программы на языке F#
Так, откроем главный файл программы Program.fs. По умолчанию он имеет следующее содержимое:
// For more information see https://aka.ms/fsharp-console-apps printfn "Hello from F#"
Соответственно, если нам надо внести изменения в исходный код программы, то мы будем изменять содержимое именно этого файла.
В принципе этот минимальный проект уже можно запускать. Для запуска проекта перейдем в консоли в папку проекта helloapp и для выполнения программы введем в консоли команду dotnet run:
C:\Users\eugen\fsharp> cd helloapp C:\Users\eugen\fsharp\helloapp>dotnet run Hello from F# C:\Users\eugen\fsharp\helloapp>
После выполнения команды в проекте в папке bin\Debug\net8.0
появятся файлы программы (на windows файлы helloapp.dll и helloapp.exe), которые можно вручную запустить на компьютере, где установлен .NET.
Теперь изменим весь код программы. Для этого откроем файл Program.fs в каком-нибудь текстовом редакторе и изменим его код на следующий:
open System // подключаемое пространство имен printf "Введите свое имя: " let name = Console.ReadLine() // вводим имя printfn "Привет %s" name // выводим имя на консоль
По сравнению с автоматически сгенерированным кодом я внес несколько изменений. Теперь в функции main первой строкой подключается пространство имен System, в котором находится нужный нам функционал:
open System
Далее выводится приглашение к вводу.
printf "Введите свое имя: "
На второй строке определяется переменная name
, в которую пользователь вводит информацию с консоли:
let name = Console.ReadLine()
Для получения ввода с консоли здесь используется встроенный класс Console платформы .NET, который находится в пространстве имен System.
Это пространство подключено в начале с помощью директивы open
. Без подключения пространства имен System я бы не смог использовать
класс Console и получить введенную с консоли строку. Однако в принципе нам необязательно подключать пространство имен.
Мы можем даже удалить первую строку open System
, но в этом случае мы тогда должны будем указать полный путь до
используемого класса. Например, в нашем случае мы могли бы написать:
let name = System.Console.ReadLine()
Затем введенное имя выводится на консоль:
printfn "Привет %s" name
Чтобы ввести значение переменной name внутрь выводимой на консоль строки, применяется плейсхолдер "%s". То есть при выводе строки на консоль
выражение %s
будет заменяться на значение переменной name - введенное имя.
Теперь протестируем проект, запустив его на выполнение с помощью команды dotnet run:
C:\Users\eugen\fsharp\helloapp>dotnet run Введите свое имя: Евгений Привет Евгений C:\Users\eugen\fsharp\helloapp>