% 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
% X - первый элемент списка [X | L]
% X - n-й элемент [Y | L]
N1 is N - 1,