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

если Вел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, X).

4. 4

Входная цепочка укорачивается на каждом неспонтанном цикле, а укорачиваться бесконечно она не может.

4. 5

допускается( S, [ ], _ ) :-


    конечное( S).

допускается( S, [X | Остальные], Макс_переходов) :-


    Макс_переходов > 0,


    переход( S, X, S1),


    НовыйМакс is Макс_переходов - 1,


    допускается( S1, Остальные, НовыйМакс).

допускается( S, Цепочка, Макс_переходов) :-


    Макс_переходов > 0,


    спонтанный( S, S1),


    НовыйМакс is Макс_переходов - 1,


    допускается( S1, Цепочка, НовыйМакс).

4. 7

(а)    ходконя( X/Y, X1/Y1) :-


                        % Ход коня с поля X/Y на поле X1/Y1


            ( dxy( DX, DY);


                        % Расстояния по направлениям X и Y


              dxy( DY, DX) ),


                        % Или расстояния по направлениям Y и X


            X1 is X + DX,


                        % X1 расположен в пределах шахматной доски


            надоске( X1),


            Y1 is Y + DY,


                        % Y1 расположен в пределах шахматной доски


            надоске( Y1).

        dxy( 2, 1).             % 2 поля вправо, 1 поле вперед


        dxy( 2, -1).            % 2 поля вправо, 1 поле назад


        dxy( -2, 1).            % 2 поля влево, 1 поле вперед


        dxy( -2, -1).           % 2 поля влево, 1 поле назад

        надоске( Коорд) :-


                            % Координаты в пределах доски


            0 < Коорд,


            Коорд < 9.

(b)    путьконя( [ Поле]).         % Конь стоит на поле Поле


            путьконя( [S1, S2 | Остальные] ) :-


            ходконя( S1, S2),


            путьконя( [S2 | Остальные]).

(c)    ?-  путьконя( [2/1, R, 5/4, S, Х/8] ).

Глава 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( Первый = Терм),  !,


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

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

Слово о полку Игореве
Слово о полку Игореве

Исследование выдающегося историка Древней Руси А. А. Зимина содержит оригинальную, отличную от общепризнанной, концепцию происхождения и времени создания «Слова о полку Игореве». В книге содержится ценный материал о соотношении текста «Слова» с русскими летописями, историческими повестями XV–XVI вв., неординарные решения ряда проблем «слововедения», а также обстоятельный обзор оценок «Слова» в русской и зарубежной науке XIX–XX вв.Не ознакомившись в полной мере с аргументацией А. А. Зимина, несомненно самого основательного из числа «скептиков», мы не можем продолжать изучение «Слова», в частности проблем его атрибуции и времени создания.Книга рассчитана не только на специалистов по древнерусской литературе, но и на всех, интересующихся спорными проблемами возникновения «Слова».

Александр Александрович Зимин

Древнерусская литература / Прочая старинная литература / Прочая научная литература / Древние книги / Литературоведение / Научная литература