Hello, World на языке F#

  1. Создадим консольное приложение и после некоторого времени, затраченного на гугление, попробуем поздороваться с миром:

    // подключаем лайт-синтаксис
    #light
    // C# : using System;
    open System
    // скажем миру привет
    printfn "Hello, World! What is your name, user?"
    // а как нас зовут? C# : var name = Console.ReadLine();
    let name = Console.ReadLine()
    // определим функцию, которая будет говорить "привет" аргументу who.
    // приблизительный аналог на C#:
    // public delegate void SaySomethingDelegate(string toWho);
    // SaySomethingDelegate sayHello = who => Console.WriteLine("Hello, {0}!", who);
    let sayHello who = printfn "Hello, %s!" who
    // привет, Хабрахабр!
    sayHello name
    // а в функциях можно использовать и стандартные методы .Net Framework:
    let sayHelloDotNet who = Console.WriteLine("Hello from F# via .Net, " + name + "!")
    // и опять привет!
    sayHelloDotNet name
    // в качестве бонуса посчитаем числа Фибоначчи :)
    let rec fib i = // рекурсивная функция от одного аргумента
    match i with // которая смотрит на что похож этот аргумент
    | 1 | 2 -> 1 // если он 1 или 2, то возвращаем 1
    | i -> fib(i-1) + fib(i-2) // если он похож только на себя - то рекурсивно вызываем эту же функцию

    // смотрим, что у нас получилось
    printfn "%i" (fib 20)



    Output нашей программы:

    Вот так. Язык довольно приятен. Да, ФП — это принципиально другая область чем традиционные языки типа C#.

    (c) habrahabr
     
    1 человеку нравится это.