HaskellWikiBook
Материал из Викиучебника
[править] Вступление
На этой странице представлен перевод большинства разделов из Haskell WikiBook. Оригинал можно найти здесь.
[править] Haskell :: Функциональное программирование с типами
Haskell — функциональный язык программирования. Если вы уже программировали на чём-либо и хотите посмотреть как Haskell работает и его отличия от других языков, вы можете прочитать краткий обзор.
Haskell уникален по двум причинам. Во-первых, он это чистый функциональный язык. Если у вас есть функция и вы вызываете её в двух разных местах с одинаковыми аргументами, то вы гарантированно получите одинаковые результаты в обоих случаях. Во-вторых, Haskell обеспечивает самую современную систему типов, включая такие возможности как классы типов и GADT. Навряд ли стоит ожидать, что эти термины что-то означают для вас в настоящее время, но подождите - эта книга поможет вам. Итак, в чем привлекательность Haskell для его поклонников? В том, что он включает в себя уникальные и современные конструкции? Нет. Людям, программирующим на Haskell нравится их работа, поскольку имея дело с чистыми функциями намного легче понять свои программы и доказать, что они корректны. Кроме того, развитая система типов помогает вылавливать наши ошибки, как глупые, так и весьма коварные.
Цель этой книги ввести вас как в мир языка Haskell, от основ до сложных понятий, и, одновременно, в мир компьютерного программирования. Вы можете быть опытным программистом, тем более мы просим вас быть особенно внимательным и терпеливым в процессе обучения. При всей своей похожести, языки, с которыми вы, скорее всего, наиболее знакомы, сильно отличаются от Haskell, и навыки, привитые ими могут затруднить понимание, как устроен наш язык: ничего сложного, но по-другому. Поэтому отнеситесь к этому, как к приключению, погружению в совершенно другой мир, смотря на него через затейливую математическую призму функционального программирования.
[править] Overview
The book is divided into three sections, namely, the Beginner's Track, the Advanced Track, and Practical Haskell. The last is designed to cover the more day-to-day issues, and to be readable with simply the knowledge of the Beginner's Track.
Please contribute! Everyone, regardless of Haskell competency, can help out. Spend five minutes improving a module and save someone else hours of time. Check out the notes for contributors.
[править] Для начинающих
[править] Основы |
[править] Начальный уровень |
[править] Средний уровень |
[править] Монады |
[править] Для продолжающих
[править] Более глубокое изучение |
[править] Развлекаемся с типами |
[править] Теория |
[править] Производительность |