В. М. Зюзьков, Н. Ю. Салмина ФУНКЦИОНАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Методические указания по выполнению лабораторной работы для обучающихся по направлению подготовки 09.03.04 «Программная инженерия» с применением дистанционных образовательных технологий в демо-файле
ЛАБОРАТОРНАЯ РАБОТА «РАЗРАБОТКА ПРОГРАММЫ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ЛИСП»
Цель работы – получить практические навыки в решении задач по функциональному программированию с использованием языка Лисп.
1 Задание
1. Задание состоит из трех задач, в которых необходимо составить программы на Лиспе.
В первой задаче требуется применение простой рекурсии. При составлении программ (если не оговорено противное) можно использовать все встроенные функции Лиспа. Отладку программ можно осуществлять с помощью функции трассировки (trace <имя функции>), для отключения трассировки функции используйте (untrace <имя функции>).
Во второй и третьей задачах для программирования требуется использовать локальные или вспомогательные функции.
В третьей задаче требуется использовать функционалы. При составлении программ (если не оговорено противное) можно использовать все встроенные функции языка Лисп. Тексты всех программ, если вы мыслите в духе функционального программирования, буквально состоят из нескольких строчек
Вариант 4
1. Напишите функцию, которая из данного одноуровнего списка строит список списков его элементов, например, (a b) -> ((a) (b)).
2. Напишите функцию, которая сортирует список чисел, используя алгоритм простой вставки.
3. Напишите функцию (all p x), которая проверяет, для всех ли элементов списка x выполняется предикат p (p – функция или функциональное имя).