Я новичок в прологе.
Рассмотрим следующий формат:
carsCompany(Tel_Number,
Manager,
Company_Name,
[new_cars(Car_Name,info(Color,Creator),Date_Creation)],
[old_cars(Car_Name,info(Color,Creator),Date_Creation)]
]).
Я хотел бы создать отношение с двумя аргументами, которое получает список имен автомобилей и компании и добавляет их в компанию.
update_company([Mazda],Company).
У меня есть следующий пример БД:
carsCompany(1234,
Jujiro Matsuda,
Mazda,
[new_cars(mazda_3,info(Grey,Person1),26082016)],
[old_cars(Cosmo,info(Black,Person2),26081927),
[old_cars(RX-7,info(Black,Person2),26081979),]
]).
Я пытался собрать все возможные машины, используя member
, чтобы я мог перебирать информацию.
member(X, [X|Xs]).
member(X, [Y|Ys]) :- member(X, Ys).
get_all(New,Old,carsCompany(_,_,_,New_Cars,Old_Cars)) :- member(New,New_Cars), member(Old, Old_Cars).
Хотя на самом деле это не работает:
New = [Lecture|_G750],
Old = [Tutorial|_G753] ;
New = [Lecture|_G750],
Old = [_G752, Tutorial|_G756] ;
Каков наилучший способ реализовать это?