Pull to refresh

Comments 15

хорошо, жаль что статья под замком, ссылку в твиттер дать не выйдет
юникод, это еще что — а пробелы в именах не хотите?:

let ``хабра хабр`` = 1

используется, например, в FsUnit чтобы давать чеговеческие имена тестам

[<TestFixture>]
type ``A game of bowling`` ()=
    [<Test>] member x.
     ``with simple scores should get the expected score.`` ()=
            scoreBowls [1;2;3] |> should equal 6
    
    [<Test>] member x.
     ``with a spare should get the expected score (spare).`` ()=
            scoreBowls [2;8;1] |> should equal 12
    
    [<Test>] member x.
     ``with a strike should get the expected score (strike).`` ()=
            scoreBowls [10;1;2] |> should equal 16
    
    [<Test>] member x.
     ``that is perfect should get a score of 300.`` ()=
            scoreBowls [for i in 1..18 -> 10] |> should equal 300



Я то думал, где можно применить данную особенность языка, а оказалось все лежит под носом. Действительно, для тестов очень удобно.
Осмелюсь еще дать ссылку на статью про F#, которую в соавторстве писал мой коллега Максим Моисеев — fprog.ru, там немного побольше информации;)
Зашел в комменты давать на нее ссылку.
У нас в проекте в продакшене используется достаточно большой модуль, который написан целиком на F#. Модуль генерирует на лету SQL для запросов в базу на основе фильтров, которые пользователи создают. Так что совсем не бесполезный язык)
Согласен, просто цикл статей для всех, а многие думают, что он бесполезен, вот и решил так назвать пост.
А почему именно F#, в чем будет преимущество, например, перед C# для данной задачи?
> Идентификатор — это имя, к которому привязано какое-либо значение, причем изменить его нельзя, идентификатор можно только переопределить. С этим, кстати, можно столкнуться не только в F#, но и во всех других функциональных языках программирования.

А Хабранарод, тем временем, продолжает настаивать что Common Lisp — функциональный…
Common Lisp, так же как и F# — мультипарадигменный. На самом деле в F# тоже есть способ создавать переменные:
let mutable a = 5
a < — 10
Common Lisp, согласно вики, представляет собой объединение нескольких диалектов Lisp'а. Короче, можно сделать вывод, что оба языка не pure functional.
P.S. Про mutable не написал в этом посте, т.к. собирался рассказать о нем в последующих.
А для тех, у кого с русским все хорошо, порекомендую совсем недавно вышедшую книгу Криса Смита «Программирование на F#».

Что особо ценно — очень грамотно переведена.
Sign up to leave a comment.

Articles