Поиск по списку структур, задача - Prolog
Формулировка задачи:
Все доброго времени суток. Задача:
Есть структура мальчик, которая выглядит так
Пирог принимает значение ест\не_ест. То есть определяем, ест ли мальчик пирог.
Есть три мальчика и каждый из них может есть, а может и не есть пирог. Нужно написать предикат, который будет подсчитывать количество нужных структур.
Сейчас код ищет только одно вхождение. Нужно как то это исправить.
Очень буду благодарен за помощь.
Результат сейчас: Кол= 1Мальчики=[человек("ваня","ест"),человек("володя","ест"),человек("миша","ест")]
А должно быть: Кол= 3Мальчики=[человек("ваня","ест"),человек("володя","ест"),человек("миша","ест")]
Решение задачи: «Поиск по списку структур, задача»
textual
Листинг программы
count_member(Мальчики,человек(_,ест),0,Количество),
Объяснение кода листинга программы
- Задана структура данных
человек(_,ест)и список структур данныхМальчики. - Переменная
Количествоинициализирована нулем. - Функция
count_memberвызывается с аргументамиМальчики,человек(_,ест),0иКоличество. - Функция
count_memberвыполняет поиск структур данныхчеловек(_,ест)в списке структур данныхМальчики. - При каждом обнаружении структуры данных
человек(_,ест)в списке структур данныхМальчики, функция увеличивает значение переменнойКоличествона единицу. - После завершения поиска, функция возвращает значение переменной
Количество.