Язык FSharp: основы — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (→Сопоставление с образцом (pattern matching)) |
Admin (обсуждение | вклад) (→Сопоставление с образцом (pattern matching)) |
||
Строка 30: | Строка 30: | ||
</source> | </source> | ||
− | При определении функции на нескольких строках текст со второй строки должен располагаться с отступом. Отступ задается пробелами, символы табуляции использовать нельзя. | + | При определении функции на нескольких строках текст со второй строки должен располагаться с отступом. Отступ задается пробелами, символы табуляции использовать нельзя. Первый разделитель | можно опускать: |
+ | |||
+ | <source lang="haskell"> | ||
+ | let MyFun' x = | ||
+ | match x with | ||
+ | 1 -> 2 | ||
+ | | 2 -> 4 | ||
+ | | n -> 3*n | ||
+ | </source> | ||
====Определение рекурсивных функций==== | ====Определение рекурсивных функций==== |
Версия 08:36, 7 апреля 2011
Назад к заданиям курса "Платформа .NET"
Содержание
Ссылки для скачивания
Компилятор языка F# для Visual Studio 2008 следует скачать и установить отсюда. Установка занимает достаточно продолжительное время (3-4 минуты).
Материалы по языку можно почерпнуть здесь
Общая характеристика
Язык F# - функциональный язык программирования, разработанный фирмой Microsoft.
Основные конструкции
Переменные, вывод
let x = 5
let x' = 10
printfn "%A %A" x x'
Определение функций
let add x y = x + y
printfn "%A" (add 2 3)
Сопоставление с образцом (pattern matching)
let MyFun x =
match x with
| 1 -> "единица"
| 2 -> "двойка"
| 3 -> "тройка"
| _ -> "остальное"
При определении функции на нескольких строках текст со второй строки должен располагаться с отступом. Отступ задается пробелами, символы табуляции использовать нельзя. Первый разделитель | можно опускать:
let MyFun' x =
match x with
1 -> 2
| 2 -> 4
| n -> 3*n
Определение рекурсивных функций
let rec fact n =
match n with
| 0 -> 1
| n -> n*fact(n-1)
printfn "%A" (fact 10)
Использование вспомогательных локальных переменных в теле функций
let fun x y =
let a = x-y
let b = x + y
a * b