Haskell: различия между версиями

Содержимое удалено Содержимое добавлено
м исправляю ссылку, интервики
м робот косметические изменения
Строка 10:
 
Haskell уникален по двум причинам. Во-первых, он это ''чистый'' функциональный язык. Если у вас есть функция и вы вызываете её в двух
разных местах с одинаковыми аргументами, то вы гарантированно получите одинаковые результаты в обоих случаях. Во-вторых, Haskell обеспечивает самую современную систему типов, включая такие возможности как классы типов и GADT. We don't expect you to know what these terms mean for now, but we do hope they'll be rolling smoothly off your tongue by the time you are done with this book. So, why do Haskellers like the language then? Is it just because we like using things that are unique and modern? No, Haskell programmers enjoy their work because dealing with just pure functions makes it so much easier to understand our programs and prove them correct. Moreover, having an advanced type system helps us catch our mistakes, both the silly and profound ones.
 
In this book we aim to introduce you both to the Haskell language, from the very basics to its most advanced features, and to computer programming in general. Seasoned programmers, we urge you to be especially patient with this process. In all likelihood, the languages you are most familiar with differ greatly from Haskell, and habits from those languages might make it more difficult to understand how things work: simple, but different. So treat this as an adventure, a whole different world, seeing programming through the warped and mathematical mindset of a functional programmer.
 
== Overview ==
Строка 27:
==== Основы ====
 
* [[Haskell/GettingSetUp | Установка]]
* [[Haskell/VariablesAndFunctions | Переменные и функции ]]
* [[Haskell/ListsAntTuples | Списки и кортежи ]]
* [[Haskell/NextSteps | Продвигаемся дальше ]]
* [[Haskell/TypeBasics | Типы данных ]]
* [[Haskell/SimpleInputAndOutput | Ввод/вывод ]]
* [[Haskell/TypeDeclarations | Описание типов ]]
 
|valign="top" style="border-right: 1px dashed MediumAquamarine"|
Строка 39:
==== Начальный уровень ====
 
* [[Haskell/Recursion | Рекурсия ]]
* [[Haskell/PatternMatching | Сопоставление с образцом ]]
* [[Haskell/MoreAboutLists | Ещё о списках ]]
* [[Haskell/ControlStructures | Управляющие конструкции ]]
* [[Haskell/ListProcessing | Обработка списков ]]
* [[Haskell/MoreOnFunctions | Ещё о функциях ]]
* [[Haskell/HigherOrderFunctions | Функции высшего порядка ]]
 
|valign="top" style="border-right: 1px dashed MediumAquamarine"|
Строка 51:
==== Средний уровень ====
 
* [[Haskell/Modules | Модули ]]
* [[Haskell/Indentation | Отступы, разметка ]]
* [[Haskell/MoreOnDatatypes | Ещё о типах данных ]]
* [[Haskell/ClassDeclarations | Объявление классов ]]
* [[Haskell/ClassesAndTypes | Классы и типы ]]
 
|valign="top"|
Строка 61:
==== Монады ====
 
* [[Haskell/UnderstandingMonads | Пытаемся понять монады ]]
* [[Haskell/AdvancedMonads | Снова монады ]]
* [[Haskell/AdditiveMonads | MonadPlus ]]
* [[Haskell/MonadTransformers | Преобразователи монад ]]
* [[Haskell/PracticalMonads | Практическое применение ]]
 
|}
Строка 77:
==== Более глубокое изучение ====
 
* [[ Haskell/Стрелки | Стрелки ]]
 
|valign="top" style="border-right:1px dashed SlateBlue"|