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



         

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


        atomic( X)

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

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

        ?-  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 - число вхождений атома в хвост



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