所以我正在尝试编写一个执行以下操作的小程序。
我可以搜索列表中的元素,如果在列表中找到该元素,则打印出列表以确认它已被找到。
所以在基本的伪 -
在做一些阅读的时候,我发现了一些可以做我想做的事情。这是
on(Item,[Item|Rest]).
on(Item,[DisregardHead|Tail]):-
on(Item, Tail).
如果我输入查询 - 在(苹果,[梨,葡萄,香蕉,李子,苹果])。 然后它搜索列表,丢弃不相关的元素,直到它结束并成功。
我想要做的是在编辑器中编写我自己的列表,并通过像上面那样对它执行相同类型的功能来完成它。(而不是仅仅将列表作为查询输入到控制台中。)
由于
答案 0 :(得分:3)
您可以在程序中定义
list_of_my_elements([pear, grape, banana, plum, apples]).
in_my_list_of_elements(X) :-
list_of_my_elements(L),
member(X, L).
然后查询
?- in_my_list_of_elements(apple).
我不会重新实现并重命名成员谓词。
答案 1 :(得分:1)
域 x =整数 l =整数*
谓词 找到(L,X)
条款
find([],N) :-
write("There is no such element in the list"),nl.
find([Element|List],1) :-
write("The element is ",Element),nl.
find([Element|List],N) :-
N1 = N-1,
find(List,N1).
输出:
目标:找到([1,2,3,4],3) 元素是3 是
目标:找到([1,2,3,4],0) 列表中没有这样的元素 是
目标:找到([1,2,3,4],5) 列表中没有这样的元素 是
目标:找到([1,2,4,3],4) 元素是3 是