Программирование на языке ПРОЛОГ для искуственного интеллекта




Предикаты var, nоnvar, atom, integer, atomic - часть 2


Цель истинна, если Х обозначает целое или атом.

Следующие примеры вопросов к пролог-системе иллюстрируют применение этих встроенных предикатов:

        ?-  var( Z),  Z = 2.
        Z = 2

        ?-  Z = 2, var( Z).
        no

        ?-  integer( Z), Z = 2.
        no

        ?-  Z = 2, integer( Z), nonvar( Z).
        Z = 2

        ?-  atom( 22).
        no

        ?-  atomic( 22).
        yes

        ?-  atom( ==>).
        yes

        ?-  atom( p( 1) ).
        no

Необходимость в предикате atom продемонстрируем на следующем примере. Пусть мы хотим подсчитать, сколько раз заданный атом встречается в некоторой списке объектов. Для этого мы определим процедуру

        счетчик( А, L, N)

где А - атом, L - список и N - количество вхождений этого атома. В качестве первой попытки можно было бы определить счетчик так:

        счетчик( _, [ ], 0).

        счетчик( A, [A | L], N) :-  !,
                счетчик( A, L, N1),

                                    % N1 - число вхождений атома в хвост
                N is N1 + 1.




Содержание  Назад  Вперед