Задачки:
Определите предикат p(+V, -L) - истинный тогда и только тогда, когда
L - список всех элементов списка V, встречающихся в нем более одного
раза.
2. Напишите предикат subst(+V, +X, +Y, -L) - истинный тогда и только тогда,
когда список L получается после замены всех вхождений элемента X в
списке V на элемент Y.
3. Напишите вариант программы plus(?X, ?Y, ?Z), пригодный для сложения,
вычитания и разбиения чисел на слагаемые.
(Указание. Используйте для порождения чисел встроенный предикат
between(+Low, +High, ?Value), который порождает все целые числа от
нижней границы Low до верхней границы High.)
4. Опишите процедуру для предиката расщепить/4, которая берет список целых чисел L1 и целое число N и выдает списки L2 и L3 такие, что числа из
исходного списка, меньшие, чем N, помещаются в список L2, а остальные
- в список L3.
5. Множественное число большинства английских существительных получается путем добавления буквы "s" к форме единственного числа. Но если
существительное заканчивается буквой "y", следующей за согласной,
множественное число образуется путем замены буквы "y" на сочетание
"ies"; если же существительное заканчивается буквой "o", следующей за
согласной, множественное число образуется путем добавления сочетания
"es". Напишите утверждения для предиката множественное_число/2, которые задают все эти правила. Указание. Воспользуйтесь предикатом name/2.
Методичка: Зюзьков В.М. Искусственный интеллект и экспертные системы