Tail recursion tail_len, tail_reverse