Иван Чукич - Функциональное программирование на языке C++
Название: | Функциональное программирование на языке C++ | |
Автор: | Иван Чукич | |
Жанр: | C, C++, C# | |
Изадано в серии: | неизвестно | |
Издательство: | ДМК Пресс | |
Год издания: | 2020 | |
ISBN: | 978-5-97060-781-7 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Функциональное программирование на языке C++"
Язык С++ обычно ассоциируется с объектно-ориентированным программированием. Автор книги доказывает, что на С++ так же удобно создавать программы и в функциональном стиле. Это дает ряд преимуществ, повышая удобство кода и снижая вероятность возникновения ошибок. Книга разделена на две части. В первой читатель знакомится с азами функционального программирования: основными идиомами и способами их воплощения в языке C++. Вторая часть затрагивает более сложные аспекты и посвящена собственно разработке программ с использованием функционального подхода. Издание предназначено для опытных разработчиков на С++, желающих расширить границы использования этого языка и повысить эффективность работы.
Читаем онлайн "Функциональное программирование на языке C++". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (39) »
4.1.4 Использование функции std::bind с функциями большего
числа аргументов.................................................................. 118
4.1.5 Использование лямбда-выражений вместо функции
std::bind................................................................................. 121
Карринг – необычный взгляд на функции............................. 124
Содержание
8
Простой способ создавать каррированные функции........... 125
Использование карринга для доступа к базе данных............ 127
Карринг и частичное применение функций.......................... 130
4.3 Композиция функций................................................................. 132
4.4 Повторное знакомство с подъемом функций....................... 136
4.4.1 Переворачивание пар – элементов списка........................... 138
Итоги......................................................................................................... 140
4.2.1
4.2.2
4.2.3
5
Чистота функций: как избежать изменяемого
состояния............................................................................................ 141
5.1
5.2
5.3
5.4
5.5
Проблемы изменяемого состояния. ........................................ 142
Чистые функции и референциальная прозрачность........... 145
Программирование без побочных эффектов........................ 148
Изменяемые и неизменяемые состояния
в параллельных системах........................................................... 152
О важности констант................................................................... 156
Логическая и внутренняя константность........................... 159
Оптимизированные функции-члены для временных
объектов................................................................................ 161
5.5.3 Недостатки константных объектов.................................. 163
Итоги......................................................................................................... 165
6
5.5.1
5.5.2
Ленивые вычисления...................................................................... 167
6.1
6.2
Ленивые вычисления в языке C++. .......................................... 168
Ленивые вычисления как средство оптимизации
программ. ...................................................................................... 172
Ленивая сортировка коллекций............................................ 172
Отображение элементов в пользовательском
интерфейсе........................................................................... 174
6.2.3 Подрезка дерева рекурсивных вызовов за счет
запоминания результатов функции..................................... 175
6.2.4 Метод динамического программирования
как разновидность ленивого вычисления.............................. 178
6.3 Универсальная мемоизирующая обертка.............................. 180
6.4 Шаблоны выражений и ленивая конкатенация строк......... 184
6.4.1 Чистота функций и шаблоны выражений............................ 188
Итоги......................................................................................................... 190
6.2.1
6.2.2
7
Диапазоны........................................................................................... 191
7.1
7.2
Введение в диапазоны................................................................ 193
Создание представлений данных, доступных только
для чтения. .................................................................................... 194
7.2.1
Функция filter для диапазонов............................................... 194
Содержание
7.3
7.4
7.5
9
Функция transform для диапазонов....................................... 196
Ленивые вычисления с диапазоном значений........................ 197
Изменение значений с помощью диапазонов...................... 199
Ограниченные и бесконечные диапазоны............................. 201
7.4.1 Использование ограниченных диапазонов
для оптимизации обработки входных диапазонов.............. 201
7.4.2 Создание бесконечного диапазона с помощью
ограничителя........................................................................ 203
7.2.2
7.2.3
Использование диапазонов для вычисления частоты
слов.................................................................................................. 204
Итоги......................................................................................................... 208
8
Функциональные структуры данных................................. 209
9
Алгебраические типы данных и сопоставление
с образцом........................................................................................... 226
8.1
Неизменяемые связанные списки........................................... 210
Добавление и удаление элемента в начале списка............... 210
Добавление и удаление элемента в конце списка................. 212
Добавление и удаление элемента в середине списка............ 213
Управление памятью............................................................ 213
8.2 Неизменяемые векторы............................................................. 216
8.2.1 Поиск элементов в префиксном дереве................................ 218
8.2.2 Добавление элементов в конец префиксного дерева............ 220
8.2.3 Изменение элементов в префиксном дереве......................... 223
8.2.4 Удаление элемента из конца префиксного дерева................ 223
8.2.5 Другие операции и общая эффективность
префиксных деревьев........................................................................ --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (39) »
Книги схожие с «Функциональное программирование на языке C++» по жанру, серии, автору или названию:
Жасмин Бланшет, Марк Саммерфилд - QT 4: программирование GUI на С++ Жанр: Программирование: прочее Год издания: 2007 |
Николай Н. Иванов - Программирование в Linux. Самоучитель Жанр: Linux Год издания: 2012 |
Тамара Игоревна Немцова, Светлана Юрьевна Голова, Алексей Игоревич Терентьев - Программирование на языке высокого уровня. Программирование на языке С++. Учебное пособие Жанр: C, C++, C# Год издания: 2023 Серия: Среднее профессиональное образование |