Библиотека knigago >> Компьютеры: Языки и системы программирования >> C, C++, C# >> Функциональное программирование на языке C++


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1463, книга: Хаос. Создание новой науки
автор: Джеймс Глейк

В своем мастерски написанном шедевре «Хаос» Джеймс Глейк представляет захватывающее повествование о возникновении и развитии теории хаоса. Написанная с ясностью и увлекательностью, эта книга освещает великие умы и решающие открытия, которые привели к новой парадигме в научном понимании. Глейк берет читателей в эпическое путешествие, начиная со средины 18 века и заканчивая технологическими достижениями нашего времени. Он исследует новаторские работы ученых, таких как Эдвард Лоренц, Митчелл...

СЛУЧАЙНАЯ КНИГА

Плотницкие рассказы. Василий Иванович Белов
- Плотницкие рассказы

Жанр: Русская классическая проза

Год издания: 1991

Серия: Дюма А. Собрание сочинений в 100 томах

Иван Чукич - Функциональное программирование на языке C++

Функциональное программирование на языке C++
Книга - Функциональное программирование на языке C++.  Иван Чукич  - прочитать полностью в библиотеке КнигаГо
Название:
Функциональное программирование на языке C++
Иван Чукич

Жанр:

C, C++, C#

Изадано в серии:

неизвестно

Издательство:

ДМК Пресс

Год издания:

ISBN:

978-5-97060-781-7

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Функциональное программирование на языке C++"

Язык С++ обычно ассоциируется с объектно-ориентированным программированием. Автор книги доказывает, что на С++ так же удобно создавать программы и в функциональном стиле. Это дает ряд преимуществ, повышая удобство кода и снижая вероятность возникновения ошибок. Книга разделена на две части. В первой читатель знакомится с азами функционального программирования: основными идиомами и способами их воплощения в языке C++. Вторая часть затрагивает более сложные аспекты и посвящена собственно разработке программ с использованием функционального подхода. Издание предназначено для опытных разработчиков на С++, желающих расширить границы использования этого языка и повысить эффективность работы.

Читаем онлайн "Функциональное программирование на языке C++". [Страница - 3]

116
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 Другие операции и общая эффективность
префиксных деревьев........................................................................ --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.