Prolog程序,用于输出列表的最后一个和前最后一个元素

Prolog程序,用于输出列表的最后一个和前最后一个元素,prolog,Prolog,我需要类似于最后一个和最后一个[5,a,d,2],a,B的东西,输出a=d和B=2 谢谢此问题已在此处解决: 用这个 last2_2([_|T],X,Y) :- last2_2(T,X,Y). 还是这个 last2_2([_,_|T],Y,Z):-last2_2(T,Y,Z). last2_2([_,A,B],A,B). 您可以尝试使用内置,正如@CappeliC所建议的: last2( Xs , A , B ) :- append(_,[A,B],Xs) . 甚至 last2( Xs ,

我需要类似于最后一个和最后一个[5,a,d,2],a,B的东西,输出a=d和B=2


谢谢

此问题已在此处解决:

用这个

last2_2([_|T],X,Y) :- last2_2(T,X,Y).
还是这个

last2_2([_,_|T],Y,Z):-last2_2(T,Y,Z).
last2_2([_,A,B],A,B).

您可以尝试使用内置,正如@CappeliC所建议的:

last2( Xs , A , B ) :- append(_,[A,B],Xs) .
甚至

last2( Xs , A , B ) :- reverse(Xs,[B,A|_]) .
或者你可以试着自己滚

last2( [A,B]  , A , B ) .
last2( [_|Xs] , A , B ) :- last2(Xs,A,B) .

有不止一种方法可以做到这一点。

您有没有尝试过的代码?