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

Мне нужен предикат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!

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

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

last2_2([H1,H2],H1,H2).
</code>

Ответы на вопрос(1)

Ваш ответ на вопрос