конк( Спис1, Спис2, Спис),
конк( Подспис, _, Спис2).
8. 2. Определите отношение
добавить_в_конец( Список, Элемент, НовыйСписок)
добавляющее Элемент в конец списка Список; результат - НовыйСписок. Оба списка представляйте разностными парами.
Посмотреть ответ
8. 3. Определите отношение
обратить( Список, ОбращенныйСписок)
где оба списка представлены разностными парами.
Посмотреть ответ
8. 4. Перепищите процедуру собрать из разд. 8.5.2, используя разностное представление списков, чтобы конкатенация выполнялась эффективнее.
Резюме
Для оценки качества программы существует несколько критериев:
правильность
эффективность
простота, читабельность
удобство модификации
документированность
Принцип
Следующие методы часто помогают находить идеи для совершенствования программ на Прологе:
Полезно следовать некоторым стилистическим соглашениям для уменьшения опасности внесения ошибок в программы и создания программ, легких для чтения, отладки и модификации.
В пролог-системах обычно имеются средства отладки. Наиболее полезными являются средства трассировки программ.
Существует много способов повышения эффективности программы. Наиболее простые способы включают в себя:
изменение порядка целей и предложений
управляемый перебор при помощи введения отсечений
запоминание (с помощью assert) решений, которые иначе пришлось бы перевычислять
Более тонкие и радикальные методы связаны с улучшением алгоритмов (особенно, в части повышения эффективности перебора) и с совершенствованием структур данных.
Назад | Содержание | Вперёд
Назад | Содержание | Вперёд
Часть 2
ПРОЛОГ
В ИСКУССТВЕННОМ ИНТЕЛЛЕКТЕ
Глава 9
ОПЕРАЦИИ НАД СТРУКТУРАМИ ДАННЫХ
Один из фундаментальных вопросов программирования - это вопрос о представлении сложных объектов (таких как, например, множества), а также вопрос об эффективной реализации операций над подобными объектами. В этой главе мы рассмотрим несколько часто используемых структур данных, принадлежащих к трем большим семействам: спискам, деревьям и графам. Мы изучим способы представления этих структур на Прологе и составим программы, реализующие некоторые