Справочник по языку F#

Эта статья представляет собой справочник по языку программирования F#, который поддерживает несколько парадигм и предназначен для платформы .NET. F# поддерживает функциональные, объектно-ориентированные и императивные модели программирования.

Упорядочение кода на F#

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

Заголовок Описание
Пространства имен Сведения о поддержке пространств имен в F#. С помощью пространства имен вы можете упорядочить код по областям соответствующей функциональности, подключив имя к группированию элементов программы.
Модули Дополнительные сведения о модулях Модуль F# подобен пространству имен и может также включать значения и функции. Код группирования в модулях объединяет связанный код и помогает избежать конфликтов имен в программе.
open Объявления Сведения о том, как работает open. Объявление open указывает модуль, пространство имен или тип, на элементы которого можно ссылаться без использования полного имени.
Сигнатуры Сведения о сигнатурах и файлах сигнатур. В файле сигнатур содержатся сведения об открытых сигнатурах набора элементов программы на языке F#, таких как типы, пространства имен и модули. Файл сигнатур можно использовать для указания доступности этих элементов программы.
Управление доступом Сведения об управлении доступом в F#. Управление доступом означает объявление того, какие именно клиенты могут использовать определенные элементы программы, например типы, методы, функции и т. д.
Документация XML Узнайте о поддержке создания файлов документации из комментариев XML-документов, также называемых комментариями с тройной косой чертой. Документацию можно создавать из комментариев к коду в F#, так же как и в других языках .NET.

Литералы и строки

В следующей таблице приведены справочные статьи, в которых описываются литералы и строки в F#.

Заголовок Описание:
Литералы Сведения о синтаксисе для литеральных значений в F# и способах указания сведений о типах для литералов F#.
Строки Сведения о строках в F#. Тип string представляет неизменяемый текст в виде последовательности символов Юникода. string является псевдонимом для System.String в .NET.
Интерполированные строки Сведения об интерполяции строк, специальной форме строки, которая позволяет внедрять выражения F# непосредственно внутри них.

Значения и функции

В следующей таблице приведены справочные статьи, в которых описываются понятия языка, связанные со значениями, let-привязками и функциями.

Заголовок Описание:
Значения Сведения о значениях, которые являются величинами, имеющими конкретный тип. Значения могут быть целыми числами или числами с плавающей запятой, символами или текстом, списками, последовательностями, массивами, кортежами, размеченными объединениями, записями, типами классов или значениями функции.
Функции Функции являются основным элементом выполнения программы на любом языке программирования. Функция F# имеет имя, может иметь параметры и принимать аргументы, а также имеет тело. F# также поддерживает конструкции функционального программирования, например, обработку функций как значений, использование неименованных функций в выражениях, объединение функций для образования новых функций, каррированные функции и неявное определение функций посредством частичного применения аргументов функции.
Выражения функций Сведения о том, как использовать ключевое слово F# "fun" для определения лямбда-выражения, которое является анонимной функцией.

Циклы и условные выражения

В следующей таблице приведены статьи, в которых описываются циклы и условные выражения F#.

Заголовок Описание:
Условные выражения: if...then...else Сведения о выражении if...then...else, которое выполняет различные ветви кода, а также дает разные значения при вычислении в зависимости от заданного логического выражения.
Циклы: выражение for...in Сведения о выражении for...in — циклической конструкции, которая используется для итерации по совпадениям с шаблоном в перечислимой коллекции, такой как выражение диапазона, последовательность, список, массив или другая конструкция, поддерживающая перечисление.
Циклы: выражение for...to Сведения о выражении for...to, которое используется для циклической итерации по диапазону значений переменной цикла.
Циклы: выражение while...do Сведения о выражении while...do, используемом для итеративного выполнения (выполнения в цикле), пока заданное условие теста истинно.

Сопоставление шаблонов

В следующей таблице приведены статьи, в которых описываются основные понятия языка.

Заголовок Описание
Соответствие шаблону Сведения о шаблонах, которые являются правилами для преобразования входных данных и используются во всем языке F#. Пользователь может сравнить данные с шаблоном, разбить данные на составляющие части или извлечь сведения из данных теми или иными способами.
Выражения match Сведения о выражении match, которое позволяет управлять ветвлением за счет сравнения выражения с набором шаблонов.
Активные шаблоны Сведения об активных шаблонах. Активные шаблоны позволяют определять именованные разделы, на которые подразделяются входные данные. Активные шаблоны можно использовать для разложения данных в настраиваемом порядке для каждого раздела.

Обработка исключений

В следующей таблице приведены справочные статьи, в которых описываются понятия языка, связанные с обработкой исключений.

Заголовок Описание
Обработка исключений Содержит сведения о поддержке обработки исключений в F#.
Выражение try...with Сведения об использовании выражения try...with для обработки исключений.
Выражение try...finally Сведения, о том, как выражение F# try...finally позволяет выполнять код очистки, даже если блок кода создает исключение.
Ключевое слово use Сведения о ключевых словах use и using, позволяющих управлять инициализацией и освобождением ресурсов.
Проверочные утверждения Сведения о выражении assert, являющимся функцией отладки, которую можно использовать для тестирования выражения. При сбое в режиме отладки утверждение создает диалоговое окно системной ошибки.

Типы и вывод типов

В следующей таблице приведены справочные статьи, в которых описываются принципы работы типов и вывода типов в F#.

Заголовок Описание
Типы Сведения о типах, которые используются в F#, а также о способах их именования и описания.
Базовые типы Сведения об основных типах, используемых в F#. Кроме того, указывает соответствующие типы .NET и минимальное и максимальное значения для каждого из них.
Тип Unit Описывает тип unit, который указывает на отсутствие конкретного значения. Тип unit имеет только одно значение, которое выступает в качестве заполнителя, если другое значение не существует или не требуется.
Сокращенные обозначения типов Сведения о сокращенных формах типов, которые являются альтернативными именами типов.
Вывод типа Сведения о том, как компилятор F# определяет типы значений, переменных, параметров и возвращаемых значений.
Приведение и преобразование Сведения о поддержке для преобразований типов в F#.
Универсальные шаблоны Сведения об универсальных конструкциях в F#.
Автоматическое обобщение Сведения о том, как F# автоматически обобщает аргументы и типы функций, чтобы они работали с несколькими типами, когда это возможно.
Ограничения Сведения об ограничениях, применяемых к параметрам универсального типа для указания требований для аргумента типа в универсальном типе или функции.
Гибкие типы Сведения о гибких типах. Заметка с гибким типом указывает на то, что параметр, переменная или значение имеют тип, который совместим с указанным типом, где совместимость определяется положением в объектно ориентированной иерархии классов или интерфейсов.
Единицы измерения Сведения о единицах измерения. Значения с плавающей запятой в языке F# могут иметь связанные единицы измерения, которые обычно используются для указания длины, объема, массы и т. д.
Byref Сведения о типе ByRef и схожих с типах в F#, которые используются для низкоуровневого программирования.

Кортежи, списки, коллекции, параметры

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

Заголовок Описание
Кортежи Сведения о кортежах, представляющих собой группирования неименованных, но упорядоченных значений, которые могут иметь разные типы.
Коллекции Обзор типов функциональных коллекций F#, включая типы для массивов, списков, последовательностей (seq), карт и наборов.
Списки Сведения о списках. В языке F# список — это упорядоченная, неизменная серия элементов одного типа.
Параметры Сведения о типе параметра. Параметр в F# используется, когда значение может как существовать, так и не существовать. Параметр имеет базовый тип и может содержать значение этого типа либо не содержать никакого значения.
Массивы Сведения о массивах. Массивы — это изменяемые последовательности элементов данных одного типа, имеющие фиксированный размер и индексируемые с нуля.
Последовательности Сведения о последовательностях. Последовательность — это логический ряд элементов одного типа. Отдельные элементы последовательности вычисляются только при необходимости, поэтому представление может быть меньше указанного количества элементов литерала.
Выражения последовательности Сведения о выражениях последовательности, которые позволяют создавать последовательности данных по запросу.
Ссылочные ячейки Сведения о ссылочных ячейках, представляющие собой места хранения, которые позволяют создавать изменяющиеся переменные с семантикой ссылок.

Записи и размеченные объединения

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

Заголовок Описание
Записи Сведения о записях. Записи представляют собой простые агрегаты именованных значений, которые могут иметь элементы.
Анонимные записи Сведения о том, как создавать и использовать анонимные записи, представляющие собой языковую функцию, которая помогает управлять данными.
Размеченные объединения Сведения о размеченных объединениях, обеспечивающих поддержку значений, которые могут представлять один из множества именованных вариантов, каждый из которых может иметь разные значения и типы.
Структуры Сведения о структурах, представляющих собой компактный тип объекта, который может быть более эффективным, чем класс для типов, имеющих небольшое количество данных и простое поведение.
Перечисления Перечисления — это типы, имеющие определенный набор именованных значений. Их можно использовать вместо литералов, чтобы сделать код более понятным и простым в обслуживании.

Объектно-ориентированное программирование

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

Заголовок Описание
Классы Сведения о классах, которые являются типами, представляющими объекты, которые могут иметь свойства, методы и события.
Интерфейсы Сведения об интерфейсах, которые определяют наборы связанных элементов, реализуемых другими классами.
Абстрактные классы Сведения об абстрактных классах, которые оставляют некоторые или все элементы нереализованными, чтобы реализации могли предоставляться производными классами.
Расширения типов Сведения о расширениях типов, которые позволяют добавлять новые элементы в ранее определенный тип объекта.
Делегаты Сведения о делегатах, которые представляют вызов функции в качестве объекта.
Наследование Сведения о наследовании, которое применяется для моделирования отношения "is-a" — подтипирования — в объектно-ориентированном программировании.
Члены Сведения об элементах типов объектов F#.
Параметры и аргументы Сведения о языковой поддержке для определения параметров и передачи аргументов в функции, методы и свойства. Содержит сведения о передаче по ссылке.
Перегрузка операторов Сведения о перегрузке арифметических операторов в классе или типе записи, а также на глобальном уровне.
Выражения объекта Сведения о выражениях объектов, формирующих новые экземпляры динамически создаваемого анонимного типа объекта, который основан на существующем базовом типе, интерфейсе или наборе интерфейсов.

Выражения Async, Task и Lazy

В следующей таблице перечислены статьи, посвященные выражениям F# Async, Task и Lazy:

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

Вычислительные выражения и запросы

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

Заголовок Описание
Выражения вычисления Описывает выражения вычисления в F#, обеспечивающие удобный синтаксис для записи вычислений, которые можно упорядочивать и комбинировать с помощью привязок и конструкций потока управления. Их можно использовать для управления данными и побочными эффектами в функциональных программах.
Выражения запросов Сведения о выражениях запросов — функции языка, которая реализует LINQ для F# и позволяет составлять запросы к источнику данных или перечислимой коллекции.

Атрибуты, отражение, цитирование и форматирование обычного текста

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

Заголовок Описание
Атрибуты Сведения об атрибутах F#, позволяющих применять метаданные к программным конструкциям.
nameof Сведения об операторе nameof — функции метапрограммирование, которая позволяет создавать имя любого символа в исходном коде.
Сведения о вызывающем объекте Сведения об использовании атрибутов аргумента сведений вызывающей стороны для получения сведений о вызывающей стороне из метода.
Идентификаторы Source Line, File и Path Сведения об идентификаторах __LINE__, __SOURCE_DIRECTORY__ и __SOURCE_FILE__, представляющих собой встроенные значения, которые позволяют получить доступ к номеру исходной строки, каталогу и имени файла в коде.
Цитирование кода Сведения о цитировании кода — функции языка, позволяющей программно создавать выражения кода F# и работать с ними.
Форматирование обычного текста Узнайте, как использовать sprintf и другое форматирование обычного текста в приложениях и сценариях F#.

Поставщики типов

В следующей таблице приведены статьи, в которых описываются поставщики типов F#.

Заголовок Описание
Поставщики типов Сведения о поставщиках типов и перейдите по ссылкам на пошаговые инструкции по использованию встроенных поставщиков типов для доступа к базам данных и веб-службам.
Создание поставщика типов Сведения о том, как создавать собственные поставщики типов F#, изучив несколько поставщиков простых типов, иллюстрирующих основные понятия.

Справочник по API библиотеки F# Core

Справочник по API библиотеки F# Core (FSharp.Core) содержит справочные материалы по всем пространствам имен, модулям, типам и функциям библиотеки F# Core.

Ссылочные таблицы

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

Название Описание:
Справочные сведения о ключевых словах Содержит ссылки на сведения обо всех ключевых словах языка F#.
Справочник символов и операторов Содержит таблицу символов и операторов, которые используются в F#.

Конструкции, поддерживаемые компилятором

Следующая таблица содержит список статей, где описаны специальные конструкции, поддерживаемые компилятором.

Раздел Описание
Параметры компилятора Описывает параметры командной строки для компилятора F#.
Директивы компилятора Сведения о директивах процессора и директивах компилятора, поддерживаемых компилятором F#.