F Sharp (язык программирования)


F# (произносится как F-шарп ) — это ориентированный на функциональность, универсальный, строго типизированный , мультипарадигмальный язык программирования , который включает в себя функциональные , императивные и объектно-ориентированные методы программирования. Чаще всего он используется как кросс-платформенный язык Common Language Infrastructure (CLI) в .NET , но также может генерировать код JavaScript [8] и графического процессора (GPU). [9]

F# разработан F# Software Foundation , [10] Microsoft и открытыми участниками. Кроссплатформенный компилятор с открытым исходным кодом для F# доступен в F# Software Foundation . [11] F# — полностью поддерживаемый язык в Visual Studio [12] и JetBrains Rider . [13] Плагины, поддерживающие F#, существуют для многих широко используемых редакторов, включая Visual Studio Code , Vim и Emacs .

F# является членом семейства языков ML и возник как реализация .NET Framework ядра языка программирования OCaml . [5] [6] На него также повлияли C# , Python , Haskell , [4] Scala и Erlang .

F# использует открытый процесс разработки и проектирования. Процесс эволюции языка управляется Доном Саймом из Microsoft Research в качестве доброжелательного диктатора на всю жизнь (BDFL) для разработки языка вместе с F# Software Foundation. Более ранние версии языка F# разрабатывались Microsoft и Microsoft Research с использованием закрытого процесса разработки.

F# происходит от Microsoft Research , Кембридж, Великобритания. Первоначально язык был разработан и реализован Доном Саймом , [5] согласно которому в команде fsharp говорят, что F означает «Веселье». [33] Эндрю Кеннеди внес свой вклад в разработку единиц измерения . [5] Инструменты Visual F# для Visual Studio разработаны Microsoft. [5] F# Software Foundation разработала компилятор F# с открытым исходным кодом и инструменты, включающие реализацию компилятора с открытым исходным кодом, предоставленную командой Microsoft Visual F# Tools. [10]

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