% 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, :=).

если Вел1 > Вел2 то Перем := Вел3

                                иначе ЧтоУгодно :-

    Вел1 > Вел2,

    Перем = Вел3.

если Вел1 > Вел2 то ЧтоУгодно

                                иначе Перем := Вел4 :-

    Вел1 =< Вел2,

    Перем = Вел4.

Глава 4

4. 1

(a)    ?-  семья(членсемьи( _, Фамилия, _, _ ), _, [ ]).

(b)    ?-  ребенок( членсемьи( Имя, Фамилия, _,

                                работает( _, _ ) )).

(c)    семья(членсемьи( _, Фамилия, _, неработает),

                    членсемьи( _, _, _, работает( _, _ ) ),_ ).

(d)    ?-  семья( Муж, Жена, Дети),

            датарождения( Муж, дата( _, _, Год1) ),

            датарождения( Жена, дата( _, _, Год2) ),

            ( Год1 - Год2 >= 15;

              Год2 - Год1 >= 15 ),

            принадлежит( Ребенок, Дети).

4. 2

близнецы( Ребенок1, Ребенок2) :-

    семья( _, _, Дети),

    удалить( Ребенок1, Дети, ДругиеДети),

                            % Выделить первого ребенка

    принадлежит( Ребенок2, ДругиеДети),

    принадлежит( Ребенок1, Дата),

    принадлежит( Ребенок2, Дата).

4. 3

n_элемент( 1, [X | L], X).

                            % X - первый элемент списка [X | L]

n_элемент( N, [Y | L], X) :-

                            % X - n-й элемент [Y | L]

N1 is N - 1,

n_элемент( N1, L,

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату