F#

F# — это функциональный язык программирования общего назначения. Разработан Доном Саймом (англ. Don Syme) в Microsoft Research в Кембридже. Структура F# во многом схожа со структурой Caml с той лишь разницей, что первая реализована поверх библиотек и среды исполнения .NET.

F# — это исследовательский прототип, не являющийся официальным языком от Microsoft. Не планируется делать его коммерческим. Это реализация языка, созданного специально для исследовательских проектов в Microsoft Research. Некоторые задачи намного более ясны при решении их с помощью F#, особенно те, что используют математический стиль программирования. Например, написание компилятора требует работы со структурами данных и преобразованиями над ними.

Особенности

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

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

Примеры

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

type myType = IntVal of int | StringVal of string

Код представляет собой математическую нотацию тоже.

let f x = x + 1

F# работает следующим образом: тип «f» представляет собой «int -> int», то есть функция получает на вход целое и выдает на выход целое. F# позволяет получить доступ абсолютно ко всему, что есть в BCL. Синтаксис для работы с библиотеками .NET в этом смысле максимально близок к синтаксису С#. Особенности языка заметны при использовании всего спектра возможностей F#. К примеру, следующий код отображает функцию с помощью списка:

let rec map f l =
    match l with
       |  -> 
       | h::t -> f h :: map f t
 
let myList = [1;3;5]
let newList = map (fun x -> x + 1) myList

В «newList» теперь находится «[2;4;6]».

Ссылки

  • F#(англ.) — сайт Microsoft Research о F#.
  • Введение в F# — интервью с Доном Саймом.


 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home