
Языки программирования зачастую отличаются лишь отдельными элементами — несколько ключевых слов, библиотек или платформеных решений. Haskell формирует абсолютно новую точку зрения. По мнению пионера программного обеспечения Алана Кэя, смена перспективы может дать 80 баллов IQ, и разработчики на Haskell соглашаются с исключительными преимуществами мышления в стиле Haskell: функционального мышления с ориентацией на типобезопасность, математическую определённость и многое другое. В этой практической книге вы будете учиться именно этому. «Программируй на Haskell» проведёт вас через короткие уроки, примеры и упражнения, разработанные так, чтобы вы смогли прочувствовать Haskell. В ней вы найдёте кристально ясные иллюстрации легко сможете практиковаться под её руководством. Вы будете писать и тестировать дюжины интересных программ, а также погрузитесь в различные модули и библиотеки. Вы получите новую перспективу в программировании и возможность использовать Haskell в реальном мире (80 баллов IQ не гарантируются). Написано для читателей, которые уже знают хотя бы один язык программирования.
Предисловие 13
Благодарности 15
Об этой книге 17
Об авторе 21
Урок 1. Начало работы с Haskell 22
Модуль 1. Основания функционального программирования 34
Урок 2. Функции и функциональное программирование 36
Урок 3. Лямбда-функции и лексическая область видимости 46
Урок 4. Функции как значения первого класса 57
Урок 5. Замыкания и частичное применение функций 67
Урок 6. Списки 78
Урок 7. Правила рекурсии и сопоставление с образцом 90
Урок 8. Написание рекурсивных функций 99
Урок 9. Функции высшего порядка 109
Урок 10. Итоговый проект: функциональное объектно-ориентированное программирование и роботы! 119
Модуль 2. Введение в типы 132
Урок 11. Основы системы типов 134
Урок 12. Создание пользовательских типов 148
Урок 13. Классы типов 161
Урок 14. Использование классов типов 172
Урок 15. Итоговый проект: секретные сообщения! 186
Модуль 3. Программирование в типах 205
Урок 16. Создание типов с помощью «И» и «ИЛИ» 207
Урок 17. Проектирование композицией: полугруппы и моноиды 220
Урок 18. Параметризованные типы 235
Урок 19. Тип Maybe: работа с отсутствующими значениями 248
Урок 20. Итоговый проект: временные ряды 260
Модуль 4. Ввод и вывод в Haskell 279
Урок 21. «Привет, мир!» — введение в ввод-вывод 282
Урок 22. Командная строка и ленивый ввод-вывод 295
Урок 23. Работа с типом Text и Юникодом 307
Урок 24. Работа с файлами 319
Урок 25. Работа с двоичными данными 331
Урок 26. Итоговый проект: обработка двоичных файлов и книжных данных 346
Модуль 5. Работа с типами в контексте 365
Урок 27. Класс типов Functor 369
Урок 28. Приступаем к аппликативным функторам: функции в контексте 382
Урок 29. Списки как контекст: углубляемся в аппликативные вычисления 397
Урок 30. Введение в класс типов Monad 412
Урок 31. Облегчение работы с монадами с помощью do-нотации 427
Урок 32. Монада списка и генераторы списков 442
Урок 33. Итоговый проект: SQL-подобные запросы в Haskell 451
Модуль 6. Организация кода и сборка проектов 468
Урок 34. Организация кода на Haskell c помощью модулей 469
Урок 35. Сборка проектов при помощи stack 480
Урок 36. Тестирование свойств с помощью QuickCheck 490
Урок 37. Итоговый проект: библиотека для простых чисел 504
Модуль 7. Применение Haskell на практике 519
Урок 38. Ошибки в Haskell и тип Either 521
Урок 39. Создание HTTP-запросов в Haskell 535
Урок 40. Работа с данными JSON с использованием Aeson 546
Урок 41. Использование баз данных в Haskell 563
Урок 42. Эффективные массивы с изменением состояния в Haskell 583
Послесловие 601
Примерные решения задач 607
Предметный указатель 631
Название: Программируй на Haskell
Автор: Курт У.
Год: 2019
Жанр: программирование
Издательство: ДМК Пресс
Язык: Русский
Формат: pdf
Качество: eBook
Страниц: 649
Размер: 8 MB
Скачать Курт У. - Программируй на Haskell (2019)