ЛИСП
Категория реферата: Рефераты по информатике, программированию
Теги реферата: изложение с элементами сочинения, эффективность диплом
Добавил(а) на сайт: Kirillov.
Предыдущая страница реферата | 3 4 5 6 7 8 9 10 11 12 13 | Следующая страница реферата
6 Назовите отличия функций CONS и LIST.
7 Что такое символ?
8 Различия функций SET, SETQ, SETF?
9 Особенности свойств символов?
Лабораторная работа №2.
Тема: Определение функций. Функции ввода-вывода. Вычисления, изменяющие структуру.
Цель: Получить навыки в написании функций. Изучить функции ввода- вывода.
Функции, определяемые пользователем.
Функция ввода.
Функции вывода.
Вычисления, изменяющие структуру.
Задание к лабораторной работе.
Вопросы.
1. Функции, определяемые пользователем.
Определение функций и их вычисление в Лиспе основано на лямбда- исчислении Черча.
В Лиспе лямбда-выражение имеет вид
(LAMBDA (x1 x2 ... xn) fn)
Символ LAMBDA означает, что мы имеем дело с определением функции.
Символы xi являются формальными параметрами определения, которые имеют
аргументы в описывающем вычисления теле функции fn. Входящий в состав формы
список, образованный из параметров, называют лямбда-списком.
Телом функции является произвольная форма, значение которой может вычислить интерпретатор Лиспа.
_(lambda (x y) (+ x y))
Формальность параметров означает, что их можно заменить на любые другие символы, и это не отразится на вычислениях, определяемых функцией.
Лямбда-выражение - это определение вычислений и параметров функции в чистом виде без фактических параметров, или аргументов. Для того, чтобы применить такую функцию к некоторым аргументам, нужно в вызове функции поставить лямбда-определение на место имени функции:
(лямбда-выражение а1 а2 ... аn)
Здесь ai - формы, задающие фактические параметры, которые вычисляются как обычно.
_((lambda (x y) (+ x y)) 1 2) ( 3
Лямбда-вызовы можно свободно объединять между собой и другими формами. Вложенные лямбда-вызовы можно ставить как на место тела лямбда- выражения, так и на место фактических параметров.
_((lambda (x)
;Тело лямбда-вызова -
((lambda (y) (list x y)) ‘b)) ‘a) ( (a b) лямбда-вызов.
Записывать вызовы функций полностью с помощью лямбда-вызовов не разумно, поскольку очень скоро выражения в вызове пришлось бы повторять, хотя разные вызовы одной функции отличаются лишь в части фактических параметров. Проблема разрешима путем именования лямбда-выражений и использования в вызове лишь имени.
Дать имя и определить новую функцию можно с помощью функции DEFUN:
Рекомендуем скачать другие рефераты по теме: реферат личность, курсовая работа по менеджменту.
Предыдущая страница реферата | 3 4 5 6 7 8 9 10 11 12 13 | Следующая страница реферата