Чтение онлайн

на главную - закладки

Жанры

Неизвестно

Шрифт:

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

вывспис( [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),

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

Здесь содержится полная информация, однако форма представления легко может запутать, поскольку трудно проследить, какие ее части образуют самостоятельные семантические единицы. Поэтому обычно предпочитают выводить такую информацию в каком-либо формате, например так, как показано на рис. 6.2. Процедура

вывсемью( F)

с помощью которой это достигается, приведена на рис. 6.3.

вывсемью( семья ( Муж, Жена, Дети) :-

nl, write( родители), nl, nl,

вывчленсемьи( Муж), nl,

вывчленсемьи( Жена), nl, nl,

write( дети), nl, nl,

вывчленсемьи( Дети).

вывчленсемьи( членсемьи( Имя, Фамилия, дата( Д, М, Г), Работа) ) :-

tab(4), write( Имя),

tab(1), write( Фамилия),

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

Гримуар темного лорда IX

Грехов Тимофей
9. Гримуар темного лорда
Фантастика:
попаданцы
альтернативная история
аниме
фэнтези
5.25
рейтинг книги
Гримуар темного лорда IX

Фея любви. Трилогия

Николаева Мария Сергеевна
141. В одном томе
Фантастика:
фэнтези
8.55
рейтинг книги
Фея любви. Трилогия

Том 2. Рассказы и пьесы 1904-1907

Андреев Леонид Николаевич
2. Собрание сочинений в шести томах
Проза:
русская классическая проза
5.00
рейтинг книги
Том 2. Рассказы и пьесы 1904-1907

Искушение чародея (сборник)

Булычев Кир
Фантастика:
научная фантастика
космическая фантастика
6.20
рейтинг книги
Искушение чародея (сборник)

Великое кольцо (сборник)

Ефремов Иван Антонович
Гиганты фантастики
Фантастика:
научная фантастика
7.86
рейтинг книги
Великое кольцо (сборник)

Далекие горизонты (сборник)

Ле Гуин Урсула Кребер
Фантастика:
фэнтези
научная фантастика
космическая фантастика
5.00
рейтинг книги
Далекие горизонты (сборник)

Отрок (XXI-XII)

Красницкий Евгений Сергеевич
Фантастика:
альтернативная история
8.50
рейтинг книги
Отрок (XXI-XII)

Играть... в тебя

Зайцева Мария
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Играть... в тебя

Дорога ветров

Уильямс Тэд
3. Орден Манускрипта
Фантастика:
фэнтези
7.75
рейтинг книги
Дорога ветров

Искатель приключений

де Монтепен Ксавье
Приключения:
исторические приключения
6.25
рейтинг книги
Искатель приключений

Я снова князь. Книга XXIII

Дрейк Сириус
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова князь. Книга XXIII

От Византии до Орды. История Руси и русского Слова

Кожинов Вадим Валерьянович
1. История допетровской Руси
Научно-образовательная:
история
8.33
рейтинг книги
От Византии до Орды. История Руси и русского Слова

Теория культуры

Коллектив авторов
Научно-образовательная:
культурология
5.00
рейтинг книги
Теория культуры

Дневник. Том III. 1860-1861. Созерцательное богословие. Крупицы от трапезы Господней

Кронштадтский Иоанн
Религия и эзотерика:
религия
православие
христианство
5.00
рейтинг книги
Дневник. Том III. 1860-1861. Созерцательное богословие. Крупицы от трапезы Господней