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

Неизвестно

Шрифт:

Р3 = точка( 0, Y)

Такая конкретизация определяет семейство треугольников, у которых две вершины располагаются на оси х в точках 1 и -1, а третья - в произвольной точке оси у.

2. 4

отр( точка( 5, Y1), точка( 5, Y2) )

2. 5

регулярный( прямоугольник( точка( X1, Y1),

точка( Х2, Y1), точкa( X2, Y3),

точка( X1, Y3) ) ).

Здесь предполагается, что первая точка соответствует нижней левой вершине прямоугольника.

2. 6

(a) А = два

(b) no

(c) С = один

(d) D = s(s(1));

D = s(s(s(s(s(1)))))

2. 7

родственники( X, Y) :-

предок( X, Y);

предок( Y, X);

предок( Z, X),

предок( Z, Y);

предок( X, Z),

предок( Y, Z).

2. 8

преобразовать( 1, один).

преобразовать( 2, два).

преобразовать( 3, три).

2. 9

В случае, изображенном на рис. 2.10, пролог-система выполняет несколько больший объем работы.

2. 10

В соответствии с определением сопоставления, приведенном в разд. 2.2, данное сопоставление будет успешным. X приобретает вид циклической структуры, в которой сам X присутствует в качестве одного из аргументов.

Глава 3

3. 1

(a) конк( L1, [ _, _, _ ], L)

(b) конк( [ _, _, _ ], L1, L),

% Удалить 3 первые элемента L

конк( L2, [ _, _, _ ], L1)

% Удалить 3 последние элемента L1

Вот более короткий вариант, предложенный I. Tvrdy:

конк( [ _, _, _ | L2], [ _, _, _ ], L)

3. 2

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

конк( _, [Элемент], Список).

(b) последний( Элемент, [Элемент]).

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

последний( Элемент, Остальные).

3. 3

четнаядлина( [ ] ).

четнаядлина( [Первый | Остальные] ) :-

нечетнаядлина( Остальные).

нечетнаядлина( [ _ ] ).

нечетнаядлина( [Первый | Остальные] ) :-

четнаядлина( Остальные).

3. 4

обращение( [ ], [ ]).

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

обращение( Остальные, ОбращСписОстальных),

конк( О6ращСписОстальных, [Первый], ОбращСпис).

3. 5

% Такой предикат легко определить при помощи отношения обратить

палиндром( Список) :-

обратить( Список, Список).

% Вот другое решение, не использующее обратить

палиндром1( [ ] ).

палиндром1( [ _ ] ).

палиндром1 [Первый | Остальные] ) :-

конк( Середина, [Первый], Остальные),

  • Читать дальше
  • 1
  • ...
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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