Язык FSharp: основы — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Определение функций)
(Определение рекурсивных функций)
Строка 19: Строка 19:
 
<source lang="haskell">let add x y = x + y
 
<source lang="haskell">let add x y = x + y
 
printfn "%A" (add 2 3)</source>
 
printfn "%A" (add 2 3)</source>
 +
 +
====Сопоставление с образцом (pattern matching)====
 +
<source lang="haskell">
 +
let MyFun x =
 +
    match x with
 +
    | 1 -> "единица"
 +
    | 2 -> "двойка"
 +
    | 3 -> "тройка"
 +
    | _ -> "остальное"
 +
</source>
  
 
====Определение рекурсивных функций====
 
====Определение рекурсивных функций====
Строка 26: Строка 36:
 
     | n -> n*fact(n-1)
 
     | n -> n*fact(n-1)
 
printfn "%A" (fact 10)
 
printfn "%A" (fact 10)
 +
</source>
 +
 +
====Использование вспомогательных локальных переменных в теле функций====
 +
<source lang="haskell">
 +
let fun x y =
 +
    let a = x-y
 +
    let b = x + y
 +
    a * b
 
</source>
 
</source>

Версия 08:27, 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 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