Введение в программирование на Лиспе



             

Функциональное программирования


Стиль разработки программ на Лиспе получил название "функциональное программирование" (ФП). Основные положения этого стиля восприняты многими языками программирования с общей логикой уточнения решаемых задач и обобщения решений на основе выбранных специально базовых конструкций:

  1. Базовые конструкции определяются как строгие функции.
  2. При необходимости выполняются преобразования программ, (компиляция, оптимизация, ре-факторинг и т.п.) для улучшения эксплуатационных характеристик, связанных с процессами исполнения программ.
  3. Важный критерий качества программирования - полнота системы решений и универсальность реализованных определений для синтаксически управляемой обработки данных функциями высоких порядков (компилятор и т.п.), что существенно повышает надежность проектов для развивающихся постановок задач.
  4. Разработка ИС предусматривает выполнение ряда шагов, начальные из которых выполняют роль упрощенных прототипов для реализации последующих, возможно другими, более эффективными, средствами.

Отправляясь от однозначных функций, в Lisp-е обеспечено предельно широкое толкование понятия "значение", объединяющее понятия "структура данных" и "функция":

  1. Ориентируясь на рекурсивные определения функций, введена схема, достаточно удобная для построения формул, задающих функциональные определения. В качестве примера предложен идеальный Лисп (Pure Lisp).
  2. Представления функций отображены на множество списков и атомов и определена универсальная функция, по списочному представлению функции и ее аргументов строящая ее результат.
  3. Изучено расширение функционального языка, достаточное для стандартного программирования, естественного для привычных задач.

Конструирование функций средствами чистого Лиспа доставляет интеллектуальное удовольствие, оно сродни решению математических головоломок. В этом исключительно мощном языке не только реализованы основные средства, обеспечившие практичность и результативность функционального программирования, но и впервые опробован целый ряд поразительно точных построений, ценных как концептуально, так и методически и конструктивно, понимание и осмысление которых слишком отстает от практики применения.


Содержание  Назад  Вперед