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
]]>