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

Неизвестно

Шрифт:

найтивсетермы( Терм).

% Обработать оставшуюся часть файла

6. 4

начинается( Атом, Символ) :-

name( Символ, [ Код]),

name( Атом, [Код | _ ]).

6. 5

plural( Существительное, Существительные) :-

name( Существительное, СписокКодов),

name( s, КодS),

конк( СписокКодов, КодS, НовыйСписокКодов),

name( Существительные, НовыйСписокКодов).

Глава 7

7. 2

добавить( Элемент, Список) :-

var( Список), !,

% Переменная Список представляет пустой список

Список = [Элемент | Хвост].

добавить( Элемент, [ _ | Хвост]) :-

добавить( Элемент, Хвост).

принадлежит( X, Список) :-

var( Список), !,

% Переменная Список представляет пустой список,

% поэтому X не может ему принадлежать

fail.

принадлежит( X, [X | Хвост]).

принадлежит( X, [ _ | Хвост] ) :-

принадлежит( X, Хвост).

Глава 8

8. 2

добавить_в_конец( L1-[Элемент | Z2], Элемент, L1 - Z2).

8. 3

обратить( А - Z, L - L) :-

% Результатом является пустой список,

% если A-Z представляет пустой список

А == Z, !.

обратить( [X | L] - Z, RL - RZ ) :-

% Непустой список

обратить( L - Z, RL - [X | RZ].

Глава 9

9. 1

список( [ ]).

список( [ _ | Хвост]) :-

список( Хвост).

9. 2

принадлежит( X, X затем ЧтоУгодно).

принадлежит( X, Y затем Спис) :-

принадлежит( X, Спис).

9. 3

преобр( [ ], ничего_не_делать).

преобр( [Первый | Хвост], Первый затем Остальные):-

преобр( Хвост, Остальные).

9. 4

преобр( [ ], ПустСпис, _, ПустСпис).

% Случай пустого списка

преобр( [Первый | Хвост], НовСпис, Функтор, Пустой) :-

НовСпис =.. [Функтор, Первый, НовХвост],

преобр( Хвост, НовХвост, Функтор, Пустой).

9. 8

сорт1( [ ], [ ]).

сорт1( [X], [X]).

сорт1( Спис, УпорСпис) :-

разбить( Спис, Спис1, Спис2),

% Разбить на 2 прибл. равных списка

сорт1( Спис1, Упор1),

сорт1( Спис2, Упор2),

слить( Упор1, Упор2, УпорСпис).

% Слить отсортированные списки

разбить( [ ], [ ], [ ]).

разбить( [X], [X], [ ]).

разбить( [X, Y | L], [X | L1], [Y | L2]) :-

% X и Y помещаются в разные списки

  • Читать дальше
  • 1
  • ...
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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