Глава 5

5. 1 (a) X = 1;
        X = 2
(b)    X = 1;
        Y = 1;
        X = 1;
        Y = 2;
        X = 2;
        Y = 1;
        X = 2
        Y = 2;
(c)    X = 1;
        Y = 1;
        X = 1;
        Y = 2;

5. 2 класс( Число, положительное) :-
    Число > 0,  !.
класс( 0, нуль) :-  !.
класс( Число, отрицательное).

5. 3 разбить( [ ], [ ], [ ]).
разбить( [X | L], [X | L1], L2) :-
    X >= 0,  !,
    разбить( L, L1, L2).
разбить( [X | L], L1, [X | L2]) .
    разбить( L, L1, L2).

5. 4 принадлежит( Некто, Кандидаты),
        not принадлежит( Некто, Исключенные)

5. 5 разность( [ ], _, [ ]).
разность( [X | L1], L2, L):-
    принадлежит( X, L2),  !,
    разность( L1, L2, L).
разность( [X | L1], L2, [X | L]) :-
    разность( L1, L2, L).

5. 6 унифицируемые( [ ], _, [ ]).
унифицируемые( [Первый | Остальные], Терм, Список) : -
    not( Первый = Терм),  !,
    унифицируемые( Остальные, Терм, Список).
унифицируемые( [Первый | Остальные], Терм,
                                [Первый | Список] ) :-
    унифицируемые( Остальные, Терм, Список).