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




Получение структурированной информации из базы данных - часть 5


Это отношение можно запрограммировать так:

        общий( [ ], 0).

                    % Пустой список людей

        общий( [ Человек | Список], Сумма) :-

               доход( Человек, S),

                                % S - доход первого человека

               общий( Список, Остальные),

                                % Остальные - сумма доходов остальных

               Сумма is S + Остальные.

Теперь общие доходы всех семей могут быть найдены с помощью вопроса:

        ?-  семья( Муж, Жена, Дети),

             общий( [Муж, Жена | Дети], Доход).

Пусть отношение длина подсчитывает количество элементов списка, как это было определено в разд. 3.4. Тогда мы можем найти все семьи, которые имеют доход на члена семьи, меньший, чем 2000, при помощи вопроса:

        ?-  семья( Муж, Жена, Дети),

             общий( [ Муж, Жена | Дети], Доход),

             длина( [ Муж, Жена | Дети], N),

             Доход/N < 2000.




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