Ваш фрагмент кода не соответствует вашему вопросу, что говорит о том, что вы не понимаете, что делает оператор или какой оператор использовать.
@
или List.append оператор объединяет 2 списка, а list1 @ list2
занимает время O (length (list1)) и не является хвостовой рекурсивной.rev_append
хвост рекурсивен, но все еще O (n) во времени.Обычный способ добавить элемент в список, однако, с помощью конструктора ::
, а item :: mylist
занимает O (1) время.