let rec last_without_last = function
lx -> if is_empty_list (tail (lx))
then (head (lx), empty_list ())
else let
(x1, lx1) = last_without_last (tail (lx))
in
(x1, cons_list (head (lx), lx1))