Prolog - 搜索元素列表,如果找到元素则打印列表

Chr*_*ris 4 list prolog

所以我正在尝试编写一个执行以下操作的小程序。

我可以在列表中搜索元素,如果在列表中找到该元素,则打印出该列表以确认已找到它。

所以在基本的伪 -

  1. 元素列表 - 计算机、鼠标、键盘、网络摄像头
  2. 在此列表中搜索鼠标
  3. 输出在其中找到鼠标的列表

在做一些阅读时,我发现了一些可以做我想做的事情。这是下面

on(Item,[Item|Rest]).  

on(Item,[DisregardHead|Tail]):-
on(Item, Tail). 
Run Code Online (Sandbox Code Playgroud)

如果我输入查询 - on(苹果,[梨,葡萄,香蕉,李子,苹果])。然后它搜索列表,丢弃不相关的元素,直到它结束并成功。

我想要做的是在编辑器中编写我自己的列表,并通过对它执行与上面相同类型的功能来处理它。(而不是仅仅将列表作为查询输入到控制台中。)

谢谢

Not*_*ser 5

你可以在你的程序中定义

list_of_my_elements([pear, grape, banana, plum, apples]).

in_my_list_of_elements(X) :- 
    list_of_my_elements(L),
    member(X, L).
Run Code Online (Sandbox Code Playgroud)

然后查询

?- in_my_list_of_elements(apple).
Run Code Online (Sandbox Code Playgroud)

我不会重新实现和重命名成员谓词。