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# от создателя языка
Ссылки:
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.0printfn "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
]]>