]]> ]]>
Править | Обсудить | История

F#

Дата создания:
2002
Создан под влиянием:
Парадигма:
Типизация:
Принятые расширения файлов:
.fs
Реализации и версии (свернуть все | развернуть все):
Язык программирования

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

F# использует механизмы автоматического вывода типов и строго типизирован. Поддерживает сопоставление по образцу (pattern matching), допускает функции с побочными эффектами (то есть не является чистым функциональным языком — pure functional language). Является одним из языков семьи ML.

Создателем языка является Дон Сайм (Don Syme), разработкой занимается Microsoft Research.

Элементы синтаксиса:

Комментарий до конца строки //
Комментарии, которые могут быть вложенными (* ... *)
Регистрозависимость да
Регулярное выражение идентификатора переменной [_a-zA-Z][_a-zA-Z0-9']*
Присваивание значения переменной <-
Объявление переменной с присваиванием значения let varname = value
Группировка выражений ( ... )
Блок отступы
Равенство ==
Неравенство !=
Тождественное равенство =
Тождественное неравенство <>
Сравнение < > <= >=
Определение функции let f para1 para2 = ...
Вызов функции f a b ...
Вызов функции без параметров f()
Последовательность ; или конец строки
Если - то if condition trueBlock
Если - то - иначе if condition then trueBlock else falseBlock
Цикл с предусловием while condition do loopBody done
Цикл for - next для диапазона целых чисел с инкрементом на 1 for i = 1 to 10 do loopBody done или for i in 1 .. 10 do ... done
Цикл for - next для диапазона целых чисел с декрементом на 1 for i = 10 downto 1 do ... done или for i in 10 .. -1 .. 1 do ... done

Неофициальный логотип F# от создателя языка
Неофициальный логотип F# от создателя языка

IDE/Редакторы:

Примеры:

Факториал:

Пример для версий fsharp 2.0.0

Используется сопоставление по образцу с последующим рекурсивным вызовом. Ключевое слово let задаёт новое определение — в данном случае функции factorial и printFact. rec означает, что определение будет рекурсивным. Сопоставление по образцу определяется ключевым словом match. factorial вычисляет сам факториал, а printFact выводит результаты вычислений в нужном формате.

let rec factorial n =
    match n with
    | 0 -> 1
    | _ -> n * factorial (n - 1)

let rec printFact n  =
    match n with 
    | 0 -> printfn "0! = 1"
    | _ -> printFact (n-1)
           printfn "%d! = %d"  n (factorial (n))
           
printFact(16)

Hello, World!:

Пример для версий fsharp 2.0.0
printfn "Hello, World!"

Числа Фибоначчи:

Пример для версий fsharp 2.0.0

Используется рекурсивное определение чисел Фибоначчи “в лоб”.

let rec fibonacci n =
    match n with
    | 1 | 2 -> 1
    | _ -> fibonacci (n-1) + fibonacci (n-2)

let rec printFib n  =
    match n with 
    | 1 -> printf "%d, " (fibonacci (n))
    | _ -> printFib (n-1)
           printf "%d, " (fibonacci (n))
           
printFib(16)
printfn "..."

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам