Изучаем 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 совершенно бесплатно.
Изучаем Haskell. Библиотека программиста
Рейтинг книги:
0 голосов
3540

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: