Функциональное мышление в PHP
Функциональное мышление в PHP
О книге
У функционального программирования сложилась репутация как чего-то такого заумного, академического и непостижимого, что едва оно может быть полезным для "обычных" программистов. Отчасти это так и есть, но концепциями функционального программирования вполне может понять каждый программист на любом современном языке. И PHP не исключение. В этой книге вы познакомитесь с основами функционального программирования, новыми возможностями PHP 7.4, которые упрощают его применение.
Ученые-компьютерщики и инженеры-программисты, как правило, говорят на совершенно разных языках, что только усложняет изучение академических концепций. Из книги вы узнаете как использовать функциональное программирование в своей повседневной работе, познакомитесь с теорией категорий, а также узнаете про одного страшное слово, начинающееся с буквы "м". Мы начнем с самых основ и постепенно перейдем к более сложным темам, закрепляя теорию на практических примерах.
Содержание
-
- Предисловие
-
Введение
- Сравнение функционального и процедурного подходов
- Объектно-ориентированный код
- Функциональный стиль? Функциональный язык?
- Что ожидать от книги
-
Первая часть
-
Чистые функции
- Определяем “чистоту” функции
- Композиция функций
- Бинарные функции
-
Функции первого класса
- Анонимные функции
- Объекты-замыкания
- Короткие лямбды
- Привязка объекта
- Мемоизация
- Каррирование
- Преобразование
- Фильтрация
- Свёртка
- Конкатенация
-
Рекурсия
- Рекурсия
-
Иммутабельные объекты-значения
- Текущее поведение PHP
- Привносим иммутабельность
- Объекты по-функциональному
- Эволюционирующие объекты
- Зависимости
- Объекты-сущности
- Внутрифункциональная иммутабельность
-
Чистые функции
-
Часть вторая
-
Теория категорий
- Что такое категория?
- Объекты
- Несколько новых определений
- Структура
- Разбираемся с функторами
- Изоморфизм
- Моноиды
-
Категории на практике
- Преобразование структуры
- Функциональные объекты
-
Развлекаемся с функторами
- Объединение функторов
- Монады в программировании
- Анатомия PHP-монады
-
Алгебраические типы данных
- Произведения
- Типы-произведения в PHP
- Копроизведения
- Копроизведения в PHP
-
Теория категорий
-
Часть третья
-
Обработка null-значений
- Определение проблемы
- Пример
- Решение при помощи теории категорий
- Реализация решения
- Альтернативная реализация
- Замечание по поводу типов
-
Монада Either/Or, или обработка ошибок
- Определение проблемы
- Пример
- Решение при помощи теории категорий
- Реализация решения
- И то, и другое?
-
Логирование
- Определение проблемы
- Пример
- Решение при помощи теории категорий
- Реализация решения
-
Объединение монадического поведения
- Пример
- Основной принцип
- Связывание
- Лексеры
- Тестирование
- Анализ
- Преимущества ленивых вычислений
-
Обработка null-значений
-
Четвёртая часть
-
Возможности функциональных языков
- Автокаррирование
- Оптимизация рекурсии
- Изоморфическая оптимизаия
- Композиция функций
- Именование функций
- Дженерики
- Вызываемые типа
- Списковые выражения
- Встроенные опциональные типы данных
- Опциональная цепочка
- Нативный оператор связывания
- Перечислимые типы
-
Время думать функционально
- Избегайте глобального состояния
- Создавайте чистые функции
- Изолируйте операции ввода-вывода
- Избегайте циклов
- Смиритесь с объектами-значениями
- Смиритесь с функциями как значениями
- Создавайте вызываемые сервисы с одним методом
- Думайте категориями конвейера и потока данных
- Используйте монады Maybe и Either для обработки ошибок
- Не перебарщивайте
-
Дополнительные материалы
- Книги
- Видео
- Научные статьи
-
Возможности функциональных языков
60-дневная гарантия 100% удовлетворения от Leanpub
В течение 60 дней после покупки вы можете получить 100% возврат средств за любую покупку на Leanpub всего в два клика.
Технически это рискованно для нас, поскольку файлы книги или курса останутся у вас в любом случае. Но мы настолько уверены в наших продуктах и услугах, а также в наших авторах и читателях, что с радостью предлагаем полную гарантию возврата денег за всё, что мы продаем.
Узнать, насколько что-то хорошо, можно только попробовав, а благодаря нашей 100% гарантии возврата денег это можно сделать без всякого риска!
Так что нет причин не нажать кнопку "Добавить в корзину", не так ли?
Ознакомьтесь с полными условиями...
Получайте $8 с покупки за $10 и $16 с покупки за $20
Мы выплачиваем 80% роялти за покупки от $7.99 и выше, и 80% роялти минус фиксированную комиссию 50 центов за покупки в диапазоне от $0.99 до $7.98. Вы зарабатываете $8 с продажи за $10 и $16 с продажи за $20. Таким образом, если мы продадим 5000 невозвращенных копий вашей книги по $20, вы заработаете $80,000.
(Да, некоторые авторы уже заработали намного больше этого на Leanpub.)
Фактически, авторы заработалиболее $14 миллионов, создавая, публикуя и продавая на Leanpub.
Узнайте больше о писательстве на Leanpub
Бесплатные обновления. Без DRM.
Если вы покупаете книгу на Leanpub, вы получаете бесплатные обновления, пока автор обновляет книгу! Многие авторы используют Leanpub для публикации своих книг в процессе написания. Все читатели получают бесплатные обновления, независимо от того, когда они купили книгу и сколько заплатили (включая бесплатные книги).
Большинство книг Leanpub доступны в форматах PDF (для компьютеров) и EPUB (для телефонов, планшетов и Kindle). Форматы, в которых доступна книга, показаны в правом верхнем углу этой страницы.
Наконец, книги Leanpub не имеют никакой бессмысленной DRM-защиты, поэтому вы можете легко читать их на любом поддерживаемом устройстве.
Узнайте больше о форматах электронных книг Leanpub и где их читать