我正在为期末考试学习 Prolog,从课程的早期开始,我无法弄清楚我在这个作业问题上做错了什么。
这不完全是一个“家庭作业”问题,它是一个“学习最后一个问题”,所以如果有人能给我一个正确的答案,那将是一个很大的帮助。:(
问题是:
%% b) Write a predicate after(X, List, Result) that returns everything
%% in a list after any occurrence of the given element X.
%% ?- after(a,[b,a,x,d,a,f,g],R).
%% R = [x,d,a,f,g];
%% R = [f,g];
%% no
我的解决方案是这样,但它只返回一个 R 值,而不是两个。
after(X,[_,X|R],R).
?- after(a,[b,a,x,d,a,f,g],R).
R = [x, d, a, f, g].
我究竟做错了什么?