Новые возможности Visual F# 2010

F# — это мультипарадигмальный язык программирования для платформы .NET Framework, доступный в Visual Studio 2010. Язык F# поддерживает функциональное, объектно-ориентированное и императивное программирование.

Функции Visual F# выпуска Visual Studio 2010

В следующих разделах описываются некоторые функции первого выпуска Visual F#.

Поддержка функционального программирования

Функции рассматриваются как значения, их можно передавать напрямую другим функциям. Эта функциональная возможность облегчает кодирование функций высшего порядка (функций, работающих на основе других функций). Это позволяет создавать более декларативный код, в котором, как правило, меньше ошибок.

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

Дополнительные сведения см. в разделе Функции (F#).

Лямбда-выражения

Лямбда-выражения позволяют определять функции на местах, при этом их не обязательно именовать. Дополнительные сведения см. в разделе Лямбда-выражения: ключевое слово fun (F#).

Полезные типы данных

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

Неизменяемые типы данных

В F# предоставляются неизменяемые структуры данных, например неизменяемые списки, сопоставления, наборы, последовательности и записи. Дополнительные сведения см. в разделах Списки (F#), Последовательности (F#) и Записи (F#).

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

Функция сопоставления шаблонов позволяет разбивать данные на составные части и выполнять сложное ветвление на основе разбиения данных. Сопоставление шаблонов также характеризуется расширяемостью. Дополнительные сведения см. в разделах Выражения match (F#), Сопоставление шаблонов (F#) и Активные шаблоны (F#).

Асинхронное и параллельное программирование

F# поддерживает асинхронное программирование и содержит конструкции, значительно облегчающие этот вид программирования. Дополнительные сведения см. в разделе Асинхронные рабочие потоки (F#). F# можно также использовать совместно с параллельными расширениями платформы .NET Framework. При наличии пакета F# Power Pack также можно использовать Parallel LINQ (PLINQ) в сочетании с F#. Дополнительные сведения см. в разделе Параллельное программирование в .NET Framework.

Интерактивное программирование

Visual F# содержит интерпретатор F#, F# Interactive (fsi.exe), который компилирует и выполняет код в интерактивном режиме. Это позволяет легко создавать прототипы кода и тестировать кодовые конструкции без компиляции проекта. F# Interactive интегрирован с интерфейсом IDE Visual Studio. Дополнительные сведения см. в разделе Справочник по F# Interactive (fsi.exe).

Отложенные вычисления

F# поддерживает отложенные вычисления, что позволяет не выполнять вычисления до тех пор, пока не потребуется результат. Дополнительные сведения см. в разделе Отложенные вычисления (F#).

Поддержка объектно-ориентированного программирования

F# поддерживает функции объектно-ориентированного языка, благодаря чему программы на языке F# имеют полный доступ к платформе .NET Framework, а пользователь может создавать интерфейсы API платформы .NET Framework на языке F#. Дополнительные сведения см. в разделах Классы (F#), Члены (F#) и Наследование (F#).

Поддержка императивного программирования

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

Поддержка математических вычислений

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

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

Усовершенствованная система типов

F# поддерживает обобщенное программирование. Дополнительные сведения см. в разделе Универсальные шаблоны (F#).

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

Полезные библиотеки

В Visual F# входит набор библиотек, предоставляющих поддержку основного языка, типов коллекций, отражения сборок F# и форматированного ввода-вывода. F# также предоставляет доступ ко всем функциональным возможностям платформы .NET Framework 4, например к параллельным расширениям платформы .NET Framework и Windows Presentation Foundation. Дополнительные сведения см. в разделе .NET Framework 4.

См. также

Другие ресурсы

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

Начало работы с F#