Функциональное и логическое программирование
Функциональное
и логическое программирование
1. Цель работы
алгоритм лямбда программа
Ознакомление с лямбда-выражениями и функциями
языка Lisp.
Задание
Разработать функцию, производящую удаление из
исходного списка всех элементов с четными номерами.
Например:
Вход: (a b c d e).
Выход: (a c e).
Допускается использовать любые предопределённые
функции Lisp.
. Описание алгоритма решения задачи
. Описание функций
Описание стандартных функций
DEFUN -
порождающая функция, позволяет создавать функции.
COND - На вход она принимает n - пар предикат - значение. Сначала
просматриваются все предикаты в порядке следования, и если хоть один из них
истинный, то cond возвращает результат, связанный с этим предикатом. Если ни
один предикат не был истинным, то она вернет NIL.
NULL - Если значение
единственного аргумента функции есть Nil, то функция возвращает T. Во всех остальных
случаях (когда значение аргумента НЕ есть Nil, функция возвращает Nil.
описание пользовательских функций.- eventh -
функция удаляющая чётные елементы из списка.
Код программы
(defun drop-eventh
(w &optional f)
(f (drop-eventh (cdr w) nil))
((cons (car w) (drop-eventh (cdr w)
t)))))
(drop-eventh `(a b c d e))
Вывод
алгоритм функция программа
В данной работе были изучены лямбда-выражения
и функции языка Lisp,
которые могут быть использованы в базах данных больниц и институтов.
Список литературы
1. http://lisper.ru
2. http://homelisp.ru/help/lisp.html