PROLOG-无警告变量(无抑制)

PROLOG-无警告变量(无抑制),prolog,singleton,Prolog,Singleton,我想找出将以下语句转换为术语(而不是关系()的可能性,但不需要单例变量的警告:编译时的PERSON 亚历克斯喜欢所有喜欢冰淇淋的人 我下面的逻辑得到我希望它删除的单例警告。但代码运行良好 likes(alex,likes(Person,icecreams)). 以下内容为您提供了与您在没有警告的情况下尝试相同的功能: likes(alex,likes(_,icecreams)). 为什么这段代码“运行良好”?当我执行query:likes(alex,likes(magen,icecreams

我想找出将以下语句转换为术语(而不是关系()的可能性,但不需要单例变量的警告:编译时的PERSON

亚历克斯喜欢所有喜欢冰淇淋的人

我下面的逻辑得到我希望它删除的单例警告。但代码运行良好

likes(alex,likes(Person,icecreams)).

以下内容为您提供了与您在没有警告的情况下尝试相同的功能:

likes(alex,likes(_,icecreams)).

为什么这段代码“运行良好”?当我执行query:likes(alex,likes(magen,icecreams))时。它的计算结果为true,可以是任何其他名称、变量。我想它工作得很好。任何建议都将不胜感激。
喜欢(alex,Person):-喜欢(Person,icecreams)。
对我来说更正确。@Rafalon你是对的,但我不想使用规则。:)我可以问一下为什么吗?那么你的答案是
喜欢(亚历克斯,喜欢(冰淇淋))。
太好了!正是我想要的。