Изучаем Haskell. Библиотека программиста
Алехандро Серано Мена
Эта книга поможет вам быстро освоить базовые концепции языка программирования Haskell, его библиотеки и компоненты, а также заложит основы функциональной парадигмы программирования, которая становится все более значимой в современном мире разработки ПО. Книга предлагает проектный подход к освоению материала, используя в качестве прототипа проект реализации интернет-магазина. Здесь рассматривается экосистема языка Haskell и его вспомогательных средств, инструменты Cabal для управление проектами, модули HUnit и QuickCheck для тестирования программ, фреймворк Scotty для разработки веб-приложений, Persistent и Esqueleto - для управления базами данных и многие другие компоненты и библиотеки Haskell.
Издательство: Питер, Серия: Библиотека программиста, 2015 г.
ISBN 978-5-496-01188-4
Количество страниц: 464.
Содержание книги «Изучаем Haskell. Библиотека программиста»:
- 9 Об авторе
- 9 О научном редакторе
- 10 Благодарности
- 11 Введение
- 11 Зачем изучать функциональное программирование
- 11 Почему вам нужна эта книга
- 13 Часть I. Первые шаги
- 14 Глава 1. Настоящий функциональный язык
- 14 Почему именно Haskell?
- 19 История Haskell
- 19 Ваша рабочая среда
- 24 Первые шаги в использовании GHCi
- 26 Магазин, продающий машины времени
- 27 Выводы
- 28 Глава 2. Объявление модели данных
- 28 Работа с символами, числами и списками
- 36 Создание нового проекта
- 40 Определение простых функций
- 46 Работа с типами данных
- 49 Сопоставление с образцом
- 58 Записи
- 63 Выводы
- 64 Глава 3. Многократное использование кода с помощью списков
- 65 Параметрический полиморфизм
- 68 Функции в качестве аргументов
- 76 Подробнее о модулях
- 80 Углубленное изучение списков
- 91 Формирователи списков
- 95 Haskell-оригами
- 98 Выводы
- 100 Глава 4. Контейнеры и классы типов
- 100 Использование пакетов
- 108 Контейнеры: проекции, множества, деревья и графы
- 120 Специальный полиморфизм: классы типов
- 129 Двоичные деревья для минимальной цены
- 134 Классы типов, связанные с контейнерами
- 138 Выводы
- 139 Глава 5. Лень и бесконечные структуры
- 139 Бесконечное количество машин времени
- 144 Модель ленивых вычислений
- 152 Профилирование с помощью GHC
- 157 Строгие аннотации
- 160 Выводы
- 161 Часть II. Анализ данных
- 162 Глава 6. Ознакомление с клиентами с помощью монад
- 163 Анализ данных
- 174 Исследование монад
- 186 Различные виды состояний
- 193 Выводы
- 194 Глава 7. Другие рекомендуемые монады
- 194 Возвращение более одного значения
- 197 Неудачи и альтернативы
- 200 Вывод ассоциативных правил
- 207 Задачи поиска
- 208 Монада Logic
- 210 Возрождение монад и списков
- 223 Выводы
- 224 Глава 8. Использование нескольких ядер
- 224 Параллелизм, одновременность, распределенность
- 226 Монада Par
- 232 Программная транзакционная память
- 241 Облачные решения для Haskell
- 248 Выводы
- 249 Часть III. Использование ресурсов
- 250 Глава 9. Работа с файлами: ввод-вывод и библиотека conduit
- 250 Базовые ввод и вывод
- 254 Случайность
- 257 Работа с файлами
- 261 Обработка ошибок
- 270 Потоковый ввод-вывод данных с помощью библиотеки conduit
- 277 За пределами текстовых файлов
- 281 Выводы
- 282 Глава 10. Создание и синтаксический разбор текста
- 282 Пять текстовых типов данных
- 287 Создание текста со скоростью ветра
- 290 Синтаксический разбор с использованием пакета attoparsec
- 296 Представление новых классов типов
- 304 Не нужно излишеств: используйте формат JSON
- 310 Выводы
- 311 Глава 11. Безопасный доступ к базам данных
- 311 Средства доступа к базам данных
- 314 Соединение
- 316 Схемы и переносы
- 323 Запросы
- 330 Вставка, обновление и удаление
- 333 Выводы
- 334 Глава 12. Веб-приложения
- 334 Веб-экосистема Haskell
- 338 Структура RESTful
- 339 Разработка внутреннего интерфейса в среде Scotty
- 349 Разработка внешнего интерфейса с помощью компилятора Fay
- 354 Выводы
- 355 Часть IV. Предметно-ориентированные языки
- 356 Глава 13. Строгие типы для описания предложений
- 356 Предметно-ориентированные языки
- 362 Безопасность языка выражений
- 365 Зависимая типизация
- 370 Программирование на уровне типов в Haskell
- 373 Функциональные зависимости
- 379 Семейства типов
- 385 Продвижение типа и одноэлементные типы
- 394 Выводы
- 395 Глава 14. Интерпретация предложений с помощью атрибутов
- 395 Варианты интерпретации и атрибутивные грамматики
- 398 Наша первая атрибутивная грамматика
- 401 Интеграция UUAGC-кода в пакет
- 404 Интерпретация выражений
- 409 Варианты интерпретации предложений
- 415 Оригами-программирование для любого типа данных
- 418 Выводы
- 419 Часть V. Инжиниринг магазина
- 420 Глава 15. Документирование, тестирование и проверка
- 421 Документирование двоичных деревьев с помощью утилиты Haddock
- 424 Блочное тестирование с помощью утилиты HUnit
- 430 Рандомизированное тестирование с помощью библиотеки QuickCheck
- 434 Формальная верификация с использованием языка Idris
- 438 Выводы
- 439 Глава 16. Создание архитектуры приложения
- 439 Паттерны проектирования и функциональное программирование
- 441 Рекомендации среднего порядка
- 443 Утилиты
- 446 Проекты
- 458 Выводы
- 459 Приложение А. Дальнейшие перспективы
- 460 Haskell-ресурсы
- 462 Приложение Б. Путешествие во времени с Haskell
Инструкция как скачать книгу Алехандро Серано Мена: Изучаем Haskell. Библиотека программиста в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.