Дифференцирование
Интегрирование
Степенные ряды
Арифметика рядов
Производная и интеграл
Элементарные функции
Водосборы
Ленивее некуда
Краткое содержание
Упражнения
Структурная рекурсия
Свёртка
Логические значения
Натуральные числа
Maybe
Списки
Деревья
Развёртка
Списки
Потоки
Натуральные числа
Краткое содержание
Упражнения
Поиграем
Стратегия написания программ
Описание задачи
Набросок решения
Каркас. Типы и классы
Ленивое программирование
Пятнашки
Цикл игры
Приведём код в порядок
Формат запросов
Последние штрихи
Правила игры
Упражнения
Лямбда-исчисление
Лямбда исчисление без типов
Составление термов
Абстракция
Редукция. Вычисление термов
Рекурсия. Комбинатор неподвижной точки
Кодирование структур данных
Конструктивная математика
Расширение лямбда исчисления
Комбинаторная логика
Связь с лямбда-исчислением
Немного истории
Лямбда-исчисление с типами
Краткое содержание
Упражнения
Теория категорий
Категория
Функтор
Естественное преобразование
Монады
Категория Клейсли
Дуальность
Начальный и конечный объекты
Начальный объект
Конечный объект
Сумма и произведение
Экспонента
Краткое содержание
Упражнения
Категориальные типы
Программирование в стиле оригами
Индуктивные и коиндуктивные типы
Существование начальных и конечных объектов
Гиломорфизм
Краткое содержание
Упражнения
Дополнительные возможности
Пуд сахара
Сахар для списков
Сахар для монад, do-нотация
Расширения
Обобщённые алгебраические типы данных
Семейства типов
Классы с несколькими типами
Экземпляры классов для синонимов
Функциональные зависимости
Ограничение мономорфизма
Полиморфизм высших порядков
Лексически связанные типы
И другие удобства и украшения
Краткое содержание
Упражнения
Средства разработки
Пакеты
Создание пакетов
Создаём библиотеки
Создаём исполняемые программы
Установка пакета
Удаление библиотеки
Репозиторий пакетов Hackage
Дополнительные атрибуты пакета
Установка библиотек для профилирования
Создание документации с помощью Haddock
Комментарии к определениям
Комментарии к модулю
Структура страницы документации
Разметка
Краткое содержание
Упражнения
Ориентируемся по карте
Алгоритм эвристического поиска А*
Поиск маршрутов в метро
Тестирование с помощью QuickCheck
Формирование тестовой выборки
Классификация тестовых случаев
Оценка быстродействия с помощью criterion
Основные типы criterion
Краткое содержание
Упражнения
Императивное программирование
Основные библиотеки
Изменяемые значения
OpenGL
Chipmunk
Боремся с IO
Определяемся с типами
Структура проекта
Детализируем функции обновления состояния игры
Детализируем дальше
Краткое содержание
Упражнения
Музыкальный пример
Музыкальная нотация
Нотная запись в европейской традиции
Протокол midi
Музыкальная запись в виде событий
Преобразование событий во времени
Композиция треков
Экземпляры стандартных классов
Ноты в midi
Синонимы для нот
Перевод в midi
Пример
Эффективное представление музыкальной нотации
Краткое содержание
Упражнения
Приложения
Начало работы с Haskell
Литература
Книги
Тематический сборник
И все-все-все
Обзор Hackage
Стандартные библиотеки
Эффективные типы данных
Разработка программ
И все-все-все
Места
Университеты
Компании