Языки программирования зачастую отличаются лишь отдельными элементами — несколько ключевых слов, библиотек или платформеных решений. 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