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

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

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

Жанр:

C, C++, C#

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

неизвестно

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

ДМК Пресс

Год издания:

ISBN:

978-5-97060-781-7

Отзывы:

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

Рейтинг:

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

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

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

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

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

структуры данных................................................... 209
Алгебраические типы данных и сопоставление с образцом.............. 226
Монады................................................................................................... 254
Метапрограммирование на шаблонах................................................. 284
Функциональный дизайн параллельных систем................................ 309
Тестирование и отладка........................................................................ 338

Содержание
Предисловие..........................................................................................................12
Благодарности.....................................................................................................14
Об этой книге.......................................................................................................15
Об авторе.............................................................................................................21

1

Введение в функциональное программирование............22
1.1

1.2
1.3
1.4

1.5

Что такое функциональное программирование.....................23
1.1.1

Соотношение функционального программирования
с объектно-ориентированным...............................................25
1.1.2 Сравнение императивной и декларативной парадигм
на конкретном примере.........................................................25
Чистые функции.............................................................................31
1.2.1 Устранение изменяемого состояния......................................34
Функциональный стиль мышления...........................................36
Преимущества функционального программирования.........38
1.4.1 Краткость и удобочитаемость кода.....................................39
1.4.2 Параллельная обработка и синхронизация............................41
1.4.3 Непрерывная оптимизация....................................................42

Эволюция C++ как языка функционального
программирования........................................................................42
1.6 Что узнает читатель из этой книги............................................44
Итоги...........................................................................................................45

2

Первые шаги в функциональном
программировании. .........................................................................47
2.1
2.2

Функции с аргументами-функциями........................................48
Примеры из библиотеки STL.......................................................50

2.2.1

Вычисление средних.................................................................51

Содержание

7

Свертки...................................................................................53
Удаление лишних пробелов......................................................58
Разделение коллекции по предикату.......................................60
Фильтрация и преобразование...............................................62
2.3 Проблема композиции алгоритмов из библиотеки STL.......64
2.4 Создание своих функций высшего порядка............................66
2.4.1 Передача функции в качестве аргумента..............................66
2.4.2 Реализация на основе циклов..................................................67
2.4.3 Рекурсия и оптимизация хвостового вызова.........................68
2.4.4 Реализация на основе свертки................................................72
Итоги...........................................................................................................74
2.2.2
2.2.3
2.2.4
2.2.5

3

Функциональные объекты...........................................................75
3.1

3.2

3.3

3.4

Функции и функциональные объекты......................................76

Автоматический вывод возвращаемого типа.......................76
Указатели на функции............................................................80
Перегрузка операции вызова...................................................81
Обобщенные функциональные объекты..................................84
Лямбда-выражения и замыкания. .............................................86
3.2.1 Синтаксис лямбда-выражений...............................................88
3.2.2 Что находится у лямбда-выражений «под капотом»............89
3.2.3 Создание лямбда-выражений с произвольными
переменными-членами............................................................92
3.2.4 Обобщенные лямбда-выражения............................................94
Как сделать функциональные объекты еще лаконичнее......95
3.3.1 Объекты-обертки над операциями в стандартной
библиотеке..............................................................................98
3.3.2 Объекты-обертки над операциями в сторонних
библиотеках.......................................................................... 100
3.1.1
3.1.2
3.1.3
3.1.4

Обертка над функциональными объектами – класс
std::function................................................................................... 103
Итоги......................................................................................................... 105

4

Средства создания новых функций из имеющихся..... 107
4.1

4.2

Частичное применение функций............................................. 108

4.1.1

Универсальный механизм превращения бинарных
функций в унарные................................................................ 110
4.1.2 Использование функции std::bind для фиксации значений
некоторых аргументов функции.......................................... 114
4.1.3 Перестановка аргументов бинарной функции.................... --">

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


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