使用数据库迭代关系

时间:2018-06-26 15:54:14

标签: prolog

我是新手。

请考虑以下格式:

 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] ;

实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

可能的解决方案:

Debug