Вопрос по list – Как получить 2 последних значения из списка в рекурсии и в хвостовой рекурсии?

0

Мне нужен предикатlast_two(LST,Y,Z) that assigns the last value of a list to Z and the second-to-last to Y. How can I do it in recursion? and how can I do it in tail-recursion? thanks!

Вот код с хвостовой рекурсией, могу ли я сделать его более эффективным?

last2_2([_|[H1|[H2|T]]],Y,Z):-last2_2([H1|[H2|T]],Y,Z).

last2_2([H1,H2],H1,H2).
Error: User Rate Limit Exceeded זאבי כהן
Error: User Rate Limit Exceeded Scott Hunter

Ваш Ответ

1   ответ
0

Error: User Rate Limit Exceeded

last2_2([_|T],X,Y) :- last2_2(T,X,Y).

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

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

Error: User Rate Limit Exceeded

Похожие вопросы