Спис).

                слить( [X | Остальные1], [Y | Остальные2], [X | Остальные3] ) :-

                Х < Y,  !,

                слить(Остальные1, [Y | Остальные2], Остальные3).

                слить( Спис1, [Y | Остальные2], [Y | Остальные3]): -

                слить( Спис1, Остальные2, Остальные3 ).

8. 3. 2.    Табличная организация длинных процедур

Длинные процедуры допустимы, если они имеют регулярную структуру. Обычно эта структура представляет собой множество фактов, соответствующее определению какого-либо отношения в табличной форме. Преимущества такой организации длинной процедуры состоят в том, что:

Ее структуру легко понять.

Ее удобно совершенствовать: улучшать ее можно, просто добавляя новые факты.

Ее легко проверять и модифицировать (просто заменяя отдельные факты, независимо от остальных).

8. 3. 3.    Комментирование

Программные комментарии должны объяснять в первую очередь, для чего программа предназначена и как ею пользоваться, и только затем - подробности используемого метода решения и другие программные детали. Главная цель комментариев - обеспечить пользователю возможность применять программу, понимать ее и, может быть, модифицировать. Комментарии должны содержать в наиболее краткой форме всю необходимую для этого информацию. Недостаточное комментирование - распространенная ошибка, однако, программу можно и перенасытить комментариями. Объяснения деталей, которые и так ясны из самого текста программы, являются ненужной перегрузкой.

Длинные фрагменты комментариев следует располагать перед текстом, к которому они относятся, в то время как короткие комментарии должны быть вкраплены в сам текст. Информация, которую в самом общем случае следует включать в комментарии, должна схватывать следующие вопросы:

Что программа делает, как ею пользоваться (например, какую цель следует активизировать и каков вид ожидаемых результатов), примеры ее применения.

Какие предикаты относятся к верхнему уровню?

Как представлены основные понятия (объекты)?

Время выполнения и требования по объему памяти.

Каковы ограничения на программу?

Использует ли она какие-либо средства, связанные с конкретной операционной системой?

Каков смысл предикатов программы? Каковы их аргументы? Какие аргументы являются 'входными' и какие - 'выходными', если это известно? (В момент запуска предиката входные аргументы имеют полностью определенные значения, не содержащие не конкретизированных переменных.)

Алгоритмические и реализационные детали.

Назад | Содержание | Вперёд

Назад | Содержание | Вперёд

8. 4.    Отладка

Когда программа не делает того, чего от нее ждут, главной проблемой становится отыскание ошибки (или ошибок). Всегда легче найти ошибку в какой-нибудь части программы (или в отдельном модуле), чем во всей программе. Поэтому следует придерживаться следующего хорошего принципа: проверять сначала более мелкие программные единицы и только после того, как вы убедились, что

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату