Учебник по Haskell

Учебник по Haskell

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность. Книга завершается финалом, связывающим воедино темы и сюжетные линии, исследуемые на протяжении всей истории. В целом, книга представляет собой увлекательное и наводящее на размышления чтение, которое исследует человеческий опыт уникальным и осмысленным образом.

Жанры: Учебники, Программирование
Серии: -
Всего страниц: 158
ISBN: -
Год издания: Не установлен
Формат: Полный

Учебник по Haskell читать онлайн бесплатно

Шрифт
Интервал

Учебник по Haskell

Антон Холомьёв

Книга зарегистрирована под лицензией Creative Commons Attribution-NonCommercial-NoDerivs

3.0 Generic license (CC BY-NC-ND 3.0), 2012 год. Вы можете свободно распространять и копировать

эту книгу при условии указания автора. Вы не можете использовать эту книгу в коммерческих

целях, вы не можете изменять содержание книги при копировании или создавать производные

работы на основе содержания этой книги, конечно если это не программный код :) Любое из

указанных ограничений может быть смягчено по договорённости с правообладателем.

Обратная связь: [email protected]

Оглавление

Предисловие

5

1 Основы

7

2 Первая программа

19

3 Типы

34

4 Декларативный и композиционный стиль

53

5 Функции высшего порядка

66

6 Функторы и монады: теория

80

7 Функторы и монады: примеры

99

8 IO

120

9 Редукция выражений

136

10 Реализация Haskell в GHC

149

11 Ленивые чудеса

175

12 Структурная рекурсия

186

13 Поиграем

195

14 Лямбда-исчисление

210

15 Теория категорий

221

16 Категориальные типы

234

17 Дополнительные возможности

245

18 Средства разработки

259

19 Ориентируемся по карте

269

20 Императивное программирование

282

21 Музыкальный пример

299

Приложения

312

3

Содержание

Предисловие

5

Структура книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

Основные понятия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1 Основы

7

1.1 Общая картина . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.2 Типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.3 Значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4 Классы типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Контекст классов типов. Суперклассы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.5 Экземпляры классов типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.6 Ядро Haskell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.7 Двумерный синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.8 Краткое содержание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.9 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Первая программа

19

2.1 Интерпретатор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2 У-вей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3 Логические значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4 Класс Show. Строки и символы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Строки и символы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Пример: Отображение дат и времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5 Автоматический вывод экземпляров классов типов . . . . . . . . . . . . . . . . . . . . . . . . 25

2.6 Арифметика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Класс Eq. Сравнение на равенство . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Класс Num. Сложение и умножение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Класс Fractional. Деление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Стандартные числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.7 Документация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.8 Краткое содержание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.9 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Типы

34

3.1 Структура алгебраических типов данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2 Структура констант . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Несколько слов о теории графов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Строчная запись деревьев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3 Структура функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Композиция и частичное применение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Декомпозиция и сопоставление с образцом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.4 Проверка типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44


Рекомендуем почитать
Подводный мир

Автор в увлекательной форме рассказывает о таинственном мире морских глубин и о том, как человек все смелее проникает в него. В книге изложена история водолазного искусства от первых попыток погружения с примитивными приспособлениями до современных глубоководных научных экспедиций. Читатель, интересующийся подводным спортом, подводной фото- и киносъемкой, почерпнет из книги Г. Хеберляйна много полезных сведений.


Дороги Богов

На кашатера Расина объявлена охота. Ему нет места в нашей вселенной – Мегафаре.Между тем, Расину уготовано стать Мастером Справедливости, но для этого он должен пройти дорогами богов, пролегающими через три сферы – Время, Пространство и Сознание. Как это сделать, если в миг появления в Мегафаре он будет тотчас уничтожен?..


Странник в раю

Для своего времени они — уникальная пара: братья, у которых общие и отец, и мать. Это непривычно и едва ли не неприлично! Они живут далеко друг от друга и работают в совершенно разных областях науки. Но судьба сводит их в работе над одним проектом…fantlab.ru © Yazewa.


Строение пера

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Как разбудить в себе Шекспира

«Однажды просыпаешься и понимаешь, что все это никуда не годится. Надо что-то менять». Драматург Юлия Тупикина предлагает простое и изящное решение для перемен в вашей жизни – попробуйте написать свою первую пьесу! Почему именно ее? Современный российский театр очень любит новичков, всегда открыт свежим именам и идеям. Вы сможете попробовать свои силы на одном из конкурсов, а там и до больших постановок и хороших гонораров недалеко. И даже если вы не станете великим писателем, процесс написания пьесы благодаря этой книге станет для вас увлекательным путешествием, полным творческих открытий. В книге много практических упражнений, которые можно выполнять одно за одним или выбирать те, что вам больше приглянулись.


Культура отечественного собаководства XX–XXI вв. (комментарии, реплики, размышления)

Сулимов Клим Тимофеевич, кандидат биологических наук, ведущий научный сотрудник РосНИИ культурного и природного наследия им. Д. С. Лихачева, член научно-координационного совета по отечественным породам собак России. Научный консультант отдела кинологического мониторинга ПАО «Аэрофлот». Материал, подготовленный К. Т. Сулимовым в области общей и прикладной кинологии, представляет собой собственные комментарии к двум альтернативным теориям происхождения домашней собаки, к фрагментам истории отечественного собаководства, реплики и размышления на тему о стандартах пород и практике полевых испытаний охотничьих и служебных собак второй половины XX столетия, о нетрадиционном использовании естественных пород и перспективах выведения новых в настоящем и обозримом будущем. Затронуты проблемы так называемых бесхозных дворняг. Значительная часть книги посвящена критическому рассмотрению породных признаков главных отечественных пород и отродий отечественного разведения, функциональным особенностям основных статей собаки и ее поведению. Может служить пособием для изучения становления пород, их преобразований в условиях отечественной культуры собаководства.


Социология

Книга Н. Смелзера «Социология» представляет курс лекций по общей социологии для студентов высших учебных заведений.Достоинство книги в том, что она написана максимально доступным языком и полностью соответствует содержанию курса «Социология», как он отражён в государственном стандарте, а потому данное учебное пособие может быть базовым по этому курсу.Книга Смелзера также предназначена для широкого круга читателей и, в первую очередь, для предпринимателей и руководителей.На русском языке это уже второе издание.


История зарубежной литературы XIX века: Реализм

Учебное пособие предлагает сжатое освещение вопросов, связанных с развитием французской и английской литератур указанного эстетического направления. Помимо изложения историко-литературного материала пособие содержит фрагменты из художественных произведений, которые становятся предметом подробного аналитического разбора.


Культурология

Учебно-методическое пособие предназначено для аудиторной и самостоятельной работы студентов-бакалавров Пензенской ГСХА по дисциплине «культурология». В нем содержатся разделы, посвященные теории, истории мировой и отечественной культуры. В данном издании содержатся необходимые методические и учебные материалы, облегчающие подготовку студента ко всем формам итогового и промежуточного контроля по данной дисциплине.


Готовые сочинения по былинам. 5-6 классы

Дорогие ребята!На уроках литературы вы знакомитесь с произведениями устного народного творчества. Один из самых сложных жанров фольклора – былины. У вас часто возникают трудности в изучении этих произведений – особенно в написании сочинений. Нынешнему школьнику непросто понять мир старинных былин и чувства, которые древнерусский сказитель вкладывал в них. В тексте былин всегда встречается много слов и образов, которые в умах и сердцах наших далёких предков вызывали яркие впечатления и горячие отклики, а современному человеку их необходимо пояснять.Эта книга поможет вам легко выполнить самые различные задания учителя: найти постоянные эпитеты в тексте былины, дать сравнительную характеристику персонажей, ответить на вопросы по содержанию произведения, подобрать пословицы на заданную тему и объяснить их происхождение и, конечно же, написать отличное сочинение.На темы, которые предлагает школьная программа, в книге представлены уже готовые сочинения.