Функциональное программирование
Категория реферата: Рефераты по информатике, программированию
Теги реферата: культурология, бесплатные банки рефератов
Добавил(а) на сайт: Валиев.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8
В CLOS могут задаваться методы, отличающиеся от функций тем, что их аргументы специфицированы, например
(defmethod inspectpet ((x pet) (y float))
(setf weightofanimal 3.5))
Как видно из этого примера, методы не обязательно связаны с классами. Они могут быть связаны с любыми типами. Методы в CLOS могут иметь дополнительные спецификации. Для того, чтобы разобраться, как эти спецификации взаимодействуют с упорядочением типов классов, рассмотрим следующую программу и генерируемый при ее исполнении результат.
Листинг 8.6.1. Взаимодействие дополнительных спецификаций методов в CLOS с упорядочением типов классов (html, txt)
При загрузке этого файла происходит следующее:
Пример 8.6.2. Результат загрузки программы 8.6.1 (html, txt)
Видно, что упорядоченность классов по отношению наследования позволяет выстраивать целые последовательности действий при вызове одного метода.
Поскольку в CLOS нет ни механизмов скрытия конкретных представлений, ни механизмов замены прямого доступа к данным на функции, ни других характерных особенностей ООП, мы видим еще один пример того, как модным словом (в данном случае ООП) прикрывается другая, не менее интересная сущность: начатки планирования действий по структуре типов данных. В связи с этим стоит напомнить блестящий эксперимент планирования вычислений по структуре данных, в настоящий момент (судя по всему, временно) забытый: эстонскую систему PRIZ [Тыугу Э.Х. Концептуальное программирование. М. Наука. 1984. - 256 с.].
Неадекватное теоретизирование мешает увидеть и развить реальные достоинства системы и закрепляет слабые места.
Скачали данный реферат: Harlamov, Dubolazov, Witt, Эвелина, Genovefa, Курчин, Шеповалов.
Последние просмотренные рефераты на тему: права человека реферат, bestreferat ru, реферат беларусь, решебник по алгебре.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8