Prolog成员函数列表

Prolog成员函数列表,prolog,Prolog,试图找出如何为列表创建“成员”函数。到目前为止,我已经创造了这个,但我没有接近正确答案 当我输入哪个系统(system001)。 它可以工作,但当我放入哪个系统(硬盘驱动器(50))。 它根本不起作用。。。我不知道如何找到硬盘(50) 我希望有人能帮忙 谢谢。你做的比需要的更复杂 which_system(Component, System) :- spec([System|Components]), member(Component, Components). 如果系统中有更多组件,

试图找出如何为列表创建“成员”函数。到目前为止,我已经创造了这个,但我没有接近正确答案



当我输入
哪个系统(system001)。
它可以工作,但当我放入
哪个系统(硬盘驱动器(50))。
它根本不起作用。。。我不知道如何找到硬盘(50)

我希望有人能帮忙


谢谢。

你做的比需要的更复杂

which_system(Component, System) :-
  spec([System|Components]), member(Component, Components).
如果系统中有更多组件,例如
spec([system001,hard_-drive(50),hard_-drive(100)])。


将实例S转换为system001。

哦,对了,我的典型做法是做得更复杂。谢谢你解决了这个问题,它现在确实是这样工作的,但是有没有一种可能的方法,仅仅使用“哪个系统(硬盘驱动器(50)”?而不是使用额外的,S。顺便说一句,谢谢。这样你就得到了真/假。更合适的名称是exists\u system(硬盘驱动器(50))。无论如何,Prolog支持具有相同名称和不同数量参数的谓词。只需删除不感兴趣的内容…
which_系统(组件):-spec([\u124; Components]),member(组件,组件)。
谢谢,您已经提供了帮助!:)回答问题后请不要破坏它。本网站的全部目的是为老问题提供帮助,以帮助有类似问题的新用户。@user1726910:改进问题的格式甚至是对其他人的一种礼貌。
which_system(Component, System) :-
  spec([System|Components]), member(Component, Components).
?- which_system(hard_drive(50), S).