Функциональное мышление в PHP
Функциональное мышление в PHP
О книге
У функционального программирования сложилась репутация как чего-то такого заумного, академического и непостижимого, что едва оно может быть полезным для "обычных" программистов. Отчасти это так и есть, но концепциями функционального программирования вполне может понять каждый программист на любом современном языке. И PHP не исключение. В этой книге вы познакомитесь с основами функционального программирования, новыми возможностями PHP 7.4, которые упрощают его применение.
Ученые-компьютерщики и инженеры-программисты, как правило, говорят на совершенно разных языках, что только усложняет изучение академических концепций. Из книги вы узнаете как использовать функциональное программирование в своей повседневной работе, познакомитесь с теорией категорий, а также узнаете про одного страшное слово, начинающееся с буквы "м". Мы начнем с самых основ и постепенно перейдем к более сложным темам, закрепляя теорию на практических примерах.
Оглавление
-
- Предисловие
-
Введение
- Сравнение функционального и процедурного подходов
- Объектно-ориентированный код
- Функциональный стиль? Функциональный язык?
- Что ожидать от книги
-
Первая часть
-
Чистые функции
- Определяем “чистоту” функции
- Композиция функций
- Бинарные функции
-
Функции первого класса
- Анонимные функции
- Объекты-замыкания
- Короткие лямбды
- Привязка объекта
- Мемоизация
- Каррирование
- Преобразование
- Фильтрация
- Свёртка
- Конкатенация
-
Рекурсия
- Рекурсия
-
Иммутабельные объекты-значения
- Текущее поведение PHP
- Привносим иммутабельность
- Объекты по-функциональному
- Эволюционирующие объекты
- Зависимости
- Объекты-сущности
- Внутрифункциональная иммутабельность
-
Чистые функции
-
Часть вторая
-
Теория категорий
- Что такое категория?
- Объекты
- Несколько новых определений
- Структура
- Разбираемся с функторами
- Изоморфизм
- Моноиды
-
Категории на практике
- Преобразование структуры
- Функциональные объекты
-
Развлекаемся с функторами
- Объединение функторов
- Монады в программировании
- Анатомия PHP-монады
-
Алгебраические типы данных
- Произведения
- Типы-произведения в PHP
- Копроизведения
- Копроизведения в PHP
-
Теория категорий
-
Часть третья
-
Обработка null-значений
- Определение проблемы
- Пример
- Решение при помощи теории категорий
- Реализация решения
- Альтернативная реализация
- Замечание по поводу типов
-
Монада Either/Or, или обработка ошибок
- Определение проблемы
- Пример
- Решение при помощи теории категорий
- Реализация решения
- И то, и другое?
-
Логирование
- Определение проблемы
- Пример
- Решение при помощи теории категорий
- Реализация решения
-
Объединение монадического поведения
- Пример
- Основной принцип
- Связывание
- Лексеры
- Тестирование
- Анализ
- Преимущества ленивых вычислений
-
Обработка null-значений
-
Четвёртая часть
-
Возможности функциональных языков
- Автокаррирование
- Оптимизация рекурсии
- Изоморфическая оптимизаия
- Композиция функций
- Именование функций
- Дженерики
- Вызываемые типа
- Списковые выражения
- Встроенные опциональные типы данных
- Опциональная цепочка
- Нативный оператор связывания
- Перечислимые типы
-
Время думать функционально
- Избегайте глобального состояния
- Создавайте чистые функции
- Изолируйте операции ввода-вывода
- Избегайте циклов
- Смиритесь с объектами-значениями
- Смиритесь с функциями как значениями
- Создавайте вызываемые сервисы с одним методом
- Думайте категориями конвейера и потока данных
- Используйте монады Maybe и Either для обработки ошибок
- Не перебарщивайте
-
Дополнительные материалы
- Книги
- Видео
- Научные статьи
-
Возможности функциональных языков
Безусловная 100% гарантия счастья без риска от Leanpub
В течение 60 дней с момента покупки вы можете получить 100% возврат средств на любую покупку в Leanpub всего в два клика. Мы обрабатываем заявки на возврат средств вручную, так что этот процесс может занять несколько дней. Смотрите полные условия.
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them