Вход/Регистрация
Prolog
вернуться

Неизвестно

Шрифт:

вывспис( [ ]).

вывспис( [X | L) :-

write( X), n1.

вывспис( L).

Если у нас есть список списков, то одной из естественных форм его выводе является такая, при которой все элементы каждого списка записываются на отдельной строке. Для этого мы определим процедуру вывспис2. Вот пример ее использования:

?- вывспис2( [ [а, b, с], [d, e, f], [g, h, i] ] ).

а b с

d e f

g h i

Процедура, выполняющая эту работу, такова:

вывспис2( [ ]).

вывспис2( [L | LL] ) :-

строка( L), n1,

вывспис1( LL).

строка( [ ]).

строка( [X | L] ) :-

write( X), tab( 1),

строка( L).

Список целых чисел иногда удобно представить в виде диаграммы. Следующая процедура диагр выводит список в такой форме (предполагается, что числа списка заключены между 0 и 80). Пример ее использования:

?- диагр( [3, 4, 6, 5] ).

***

****

******

*****

Процедуру диагр можно определить так:

диагр( [N | L]) :-

звездочки( N), n1,

диагр( L).

звеэдочки( N) :-

N > 0,

write( *),

Nl is N - 1,

звездочки( Nl).

звездочки( N) :-

N =< 80.

6. 2. 3. Формирование термов

Предположим, наша программа имеет дело с семьями, которые представлены в виде термов так, как это сделано в гл. 4 (рис. 4.1). Тогда, если, перемен-

родители

том фокс, датарожд 7 май 1950, работает bbс,

оклад 15200

энн фокс, датарожд 9 май 1951, неработает

дети

пат фокс, датарожд 5 май 1973, неработает

джим фокс, датарожд 5 май 1973, неработает

Рис. 6. 2. Улучшенный формат вывода термов, представляющих семью.

ная F конкретизирована термом, изображенный на рис. 4.1, то цель

write( F)

вызовет вывод этого терма в стандартной форме примерно так:

семья( членсемьи( том, фокс, дата( 7, май,1950),

работает( bbс, 15200)),

членсемьи( энн, фокс, дата( 9, май, 1951),

неработает),

[членсемьи( пат, фокс, дата( 5, май, 1973),

неработает),

членсемьи( джим, фокс, дата( 5, май, 1973),

неработает)])

  • Читать дальше
  • 1
  • ...
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: