Wie erhält man die 2 letzten Werte aus einer Liste in der Rekursion und in der Schwanzrekursion?

Ich brauche ein Prädikatlast_two(LST,Y,Z) Das weist Z den letzten Wert einer Liste und Y den vorletzten Wert zu. Wie kann ich das rekursiv machen? und wie kann ich das in schwanzrekursion machen? Vielen Dank!

Hier ist ein Code mit Schwanzrekursion. Kann ich ihn effizienter gestalten?

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

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage