Есть задача и ее решение на SWI-Prolog. Нужно в комментариях описать как работает программа.
/* Напишите предикат p(+X, +Y, -Z) - истинный тогда
и только тогда, когда Z есть "пересечение" списков X и Y,
т.е. список, содержащий их общие элементы, причем
кратность каждого элемента в списке Z равняется минимуму
из его кратностей в списках X и Y.
*/
p([],_,[]):-!.
p(_,[],[]):-!.
p([H|X],Y,Z):-
(select(H,Y,Y1)->p(X,Y1,Z1),
Z=[H|Z1];
p(X,Y,Z)),!.
Гарантия на работу | 1 год |
Средний балл | 4.56 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |