Читаем Prolog полностью

    разбиениесписка( Список, Список1, Список2).

3. 10

можетзавладеть( состояние( _, _, _, имеет), [ ] ).

                                % Ничего не надо делать

можетзавладеть( Состояние, [Действие | Действия]):-

    ход( Состояние, Действие, НовоеСостояние),

                                % Первое действие

    можетзавладеть( НовоеСостояние, Действия).

                                % Оставшиеся действия

3. 11

линеаризация( [Голова | Хвост], ЛинейныйСписок ) :-

                                % Линеаризация непустого списка

    линеаризация( Голова, ЛинейнаяГолова ),

    линеаризация( Хвост, ЛинейныйХвост ),

    конк( ЛинейнаяГолова, ЛинейныйХвост,

        ЛинейныйСписок ).

линеаризация( [ ], [ ] ).                  % Линеаризация пустого списка

линеаризация( X, [X] ).

                            % Линеаризация объекта, не являющегося списком

% Замечание: при попытке получить от этой программы более

% одного варианта решения выдается бессмыслица

3. 12

Терм1 = играет_в( джимми, и( футбол, сквош) )

Терм2 = играет_в( сьюзан, и( теннис,

                                    и( баскетбол, волейбол) ) )

3. 13

:- ор( 300, xfx, работает)

:- ор( 200, xfx, в)

:- ор( 100, xfx, нашем)

3. 14

(a)    А = 1 + 0

(b)    В = 1 + 1 + 0

(c)    С = 1 + 1 + 1 + 1 + 0

(d)    D = 1 + 1 + 0 + 1

3. 15

:- ор( 100, xfx, входит_в)

:- ор( 300, fx, конкатенация_списков)

:- ор( 200, xfx, дает)

:- ор( 100, xfx, и)

:- ор( 300, fx, удаление_элемента)

:- ор( 100, xfx, из_списка)                         % Принадлежность к списку

Элемент входит_в [Элемент | Список].

Элемент входит_в [Первый | СписокОстальных] :-

Элемент входит_в СписокОстальных.

% Конкатенация списков

конкатенация_списков [ ] и Список дает Список.

конкатенация_списков [X | L1] и L2 дает [X | L3] :-

    конкатенация_списков L1 и L2 дает L3.

% Удаление элемента из списка

удаление_элемента Элемент иэ_списка

            [Элемент | ОстальныеЭлементы]

            дает ОстальныеЭлементы.

удаление_элемента Элемент из_списка

        [Первый | ОстальныеЭлементы]

        дает [Первый | НовСписОстЭлементов] :-

    удаление_элемента Элемент из_списка

            ОстальныеЭлементы дает НовСписОстЭлементов.

3. 16

max( X, Y, X) :-

    X >= Y.

max( X, Y, Y) :-

    X

3. 17

максспис( [X], X).

                            % Максимум в одноэлементном списке

максспис( [X, Y | Остальные], Мах) :-

                            % В списке есть по крайней мере два элемента?

    максспис( [Y | Остальные], МаксОстальные),

    mах( X, МаксОстальные, Мах).

                            % Мах наибольшее из чисел X и МаксОстальные

3. 18

сумспис( [ ], 0).

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

    сумспис( Остальные, СуммаОстальных),

    Сумма is Первый + СуммаОстальных.

3. 19

упорядоченный ([ ]).

                        % Одноэлементный список является упорядоченным

упорядоченный( [X, Y | Остальные] :-

    X =< Y,

    упорядоченный( [Y | Остальные] ).

3. 20

подсумма( [ ], 0, [ ]).

подсумма( [N | Список], Сумма, [N | Подмн]) :-

                    % N принадлежит подмножеству

    Сумма1 is Сумма - N,

    подсумма( Список, Сумма1, Подмн).

подсумма( [N | Список], Сумма, Подмн) :-

                    % N не принадлежит подмножеству

    подсумма( Список, Сумма, Подмн).

3. 21

между( N1, N2, N1) :-

    N1 =< N2.

между( N1, N2, X) :-

    N1 < N2,

    HoвoeNl is N1 + 1,

    между( HoвoeNl, N2, X).

3. 22

:- ор( 900, fx, если).

:- ор( 800, xfx, то).

:- ор( 700, xfx, иначе).

:- ор( 600, xfx, :=).

Перейти на страницу:

Похожие книги

12 великих трагедий
12 великих трагедий

Книга «12 великих трагедий» – уникальное издание, позволяющее ознакомиться с самыми знаковыми произведениями в истории мировой драматургии, вышедшими из-под пера выдающихся мастеров жанра.Многие пьесы, включенные в книгу, посвящены реальным историческим персонажам и событиям, однако они творчески переосмыслены и обогащены благодаря оригинальным авторским интерпретациям.Книга включает произведения, созданные со времен греческой античности до начала прошлого века, поэтому внимательные читатели не только насладятся сюжетом пьес, но и увидят основные этапы эволюции драматического и сценаристского искусства.

Александр Николаевич Островский , Иоганн Вольфганг фон Гёте , Оскар Уайльд , Педро Кальдерон , Фридрих Иоганн Кристоф Шиллер

Драматургия / Проза / Зарубежная классическая проза / Европейская старинная литература / Прочая старинная литература / Древние книги
Волчья тропа
Волчья тропа

Мир после ядерной катастрофы. Человечество выжило, но высокие технологии остались в прошлом – цивилизация откатилась назад, во времена Дикого Запада.Своенравная, строптивая Элка была совсем маленькой, когда страшная буря унесла ее в лес. Суровый охотник, приютивший у себя девочку, научил ее всему, что умел сам, – ставить капканы, мастерить ловушки для белок, стрелять из ружья и разделывать дичь.А потом она выросла и узнала страшную тайну, разбившую вдребезги привычную жизнь. И теперь ей остается только одно – бежать далеко на север, на золотые прииски, куда когда-то в поисках счастья ушли ее родители.Это будет долгий, смертельно опасный и трудный путь. Путь во мраке. Путь по Волчьей тропе… Путь, где единственным защитником и другом будет таинственный волк с черной отметиной…

Алексей Семенов , Бет Льюис , Даха Тараторина , Евгения Ляшко , Сергей Васильевич Самаров

Фантастика / Приключения / Боевик / Славянское фэнтези / Прочая старинная литература