---
title: "Язык программирования F#"
description: "F# — это мультипарадигменный язык программирования, разработанный в подразделении Microsoft Research..."
author: "Hes"
published: "2014-12-11T07:08:41+00:00"
modified: "2014-12-11T07:28:07+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/yazyk-programmirovaniya-f-447952"
markdown_url: "https://yvision.kz/post/yazyk-programmirovaniya-f-447952/markdown"
site_name: "Yvision.kz"
---

# Язык программирования F#

> F# — это мультипарадигменный язык программирования, разработанный в подразделении Microsoft Research...

F# — это мультипарадигменный язык программирования, разработанный в подразделении Microsoft Research и предназначенный для исполнения на платформе Microsoft .NET. Он сочетает в себе выразительность функциональных языков, таких как OCaml и Haskell с возможностями и объектной моделью .NET.

Год назад F# в рейтинге Tiobe занимал 69 строчку в рейтинге популярности, сейчас же - 19 место. По прогнозам Tiobe, F# будет уверенно входить в 10 самых популярных языков в мире.

Забрать F# можно [отсюда](http://fsharp.org/use/windows/) для Windows, [отсюда](http://fsharp.org/use/linux/) для Linux, [отсюда](http://fsharp.org/use/android/) для Android и [отсюда](http://fsharp.org/use/mac/) для Mac.

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

С обучением и литературой, всё очень даже хорошо, к примеру проект [Try F#](http://www.tryfsharp.org/), [WikiBooks](http://en.wikibooks.org/wiki/F_Sharp_Programming). Из книг: Tomas Petricek with Jon Skeet. Real-World Functional Programming. Часть книги есть на [MSDN](http://msdn.microsoft.com/en-us/library/hh314518). Вторая книга: Tao Liu. F# for C# Developers. Обе эти книги очень хорошо подходят разработчикам, пишущим на C#. Есть еще очень интересная книга другого автора: Johan Astborg. F# for Quantitative Finance, к ней также прилагаются исходные коды на [GitHub](https://github.com/joastbg/fsharp-for-quantitative-finance), что само по себе здорово.

Типичный хелловорлд:
- let message = "Hello world!"

- printfn "%s" message

Пример посложнее. Пусть стоит задача вычисления чётных чисел от 0 до 10:
- let numbers = [ 1 .. 10 ] // List в C#

- let isOdd(n) = (n%2 = 1) // Функция определения чётности

- let square(n) = n * n // Функция определения квадрата числа

- //Ищем квадрат чётного числа в списке

- let squared =

- numbers

- |> [List](http://www.php.net/list).filter isOdd

- |> [List](http://www.php.net/list).map square

- //

- val it : int [list](http://www.php.net/list) = [1; 9; 25; 49; 81]

List.filter - предложение where в Linq

List.map - предложение select в Linq

Императивный стиль в F#

 

- let mutable sum = 0

- for i in [0..100] do

- if i%2 <> 0 then sum <- sum + i

- [printf](http://www.php.net/printf) "the sum of odd numbers from 0 to 100 is %d \n" sum

Эти примеры лишь малая часть того, что представляет собой F#.

---

Source: [https://yvision.kz/post/yazyk-programmirovaniya-f-447952](https://yvision.kz/post/yazyk-programmirovaniya-f-447952)