Название: Программирование в среде PascalABC.NET. Функциональное программирование на Паскале
Автор: Рубанцев В.
Издательство: RVGames
Год: 2017
Формат: djvu
Страниц: 355
Для сайта: litgu.ru
Размер: 10 mb
Язык: русский
Многие современные языки программирования поддерживают несколько парадигм, почему и называются мультипарадигменными. Например, на С++, Си-шарпе, Яве, Питоне, паскале PascalABC.NET можно писать программы в процедурном, объектно-ориентированном и функциональном стиле. Функциональное программирование насчитывает уже несколько десятилетий, но только сравнительно недавно стало одной из ведущих парадигм программирования. Программы, написанные в функциональном стиле более надёжные, короткие и понятные. Их проще писать и отлаживать. Они превращают императивное программирование в декларативное. Программы, написанные в императивном стиле, показывают, как нужно что-то сделать. А программы, написанные в декларативном стиле, показывают, что мы хотим сделать. Декларативное программирование помогает избежать множества мелких подробностей.
Например, методы расширения для последовательностей OrderBy и OrderByDescebding умеют сортировать элементы по заданному условию. Теперь нет необходимости подробно расписывать функции сортировки. Весь код занимает единственную строку в программе. В функциональном программировании уже существующие данные не изменяются ! К ним либо добавляются данные, либо создаются новые. При каждом изменении объекта программы создаётся новый экземпляр. К примеру, в Паскале нельзя изменить последовательность. Всякий раз будет создаваться новая последовательность, которая может включать элементы исходной последовательности. Поэтому в функциональном программировании все переменные могут только единственный раз получить значение, то есть должны быть константами. В мультипарадигменных языках программирования, к которым относится и Паскаль, невозможно использовать только чистые функции, но вполне можно программировать в функциональном стиле. В книге подробно, с многочисленными примерами, рассказывается:
О процедурном типе в Паскале.
Об анонимных функциях.
О лямбда-выражениях.
О генерировании последовательностей.
Об языке интегрированных запросов LINQ.
Обо всех встроенных методах расширения для последовательностей.
Обо всех дополнительных методах расширения в языке PascalABC.NET.
О разработке собственных методов расширения.