【发布时间】:2014-06-07 15:54:22
【问题描述】:
我是 prolog 的新手,
我无法访问我在此处检查过的列表元素的关系 - Checking a relation of a prolog list element 但我觉得它好像没有完全回答我的问题。
我有拥有汽车的关系,即你需要钱和工作才能拥有汽车
vehicle(car).
own(car, [money, job]).
然后我有一个类似的列表
[[money, job], [car]]
我想检查列表以查看money 和job 在car 元素之前是否存在。
例如,如果我有类似的东西
test([[money, job], [car]]).
OUTPUT: true
如果是的话
test([[job], [car]]).
OUTPUT : false
因为没有钱
所以我的问题是,是否可以检查列表关系的列表元素列表,以查看列表元素是否存在考虑需求,如果不存在,处理此类事情的最佳方法是什么?
编辑:例如,我希望能够测试一堆东西
vehicle(truck).
own(truck, [money, job]).
own(motorbike, [money, job]).
thing(money).
own(job, [suit]).
vehicle(car).
own(car, [money, job]).
List of lists : test([[suit], [money, job] , [car, truck, motorbike]]) : True
test([[money, job] , [car, truck, motorbike]]) : False since you can't have job without money
test([[suit], [job] , [car], [truck], [motorbike]]) :False because you can't have car without owning money, same for truck and motorbike - but will fail on car
test([[car], [suit] , [money, job]]): False, because you can't have car without money or job which is after it.
看看我从哪里来?
问候
【问题讨论】: