Я думаю, вы можете стать еще проще с чем-то вроде (comp peek vec)
. Я думаю, что проблема в том, что last
работает с последовательностями и работает в линейном времени, как сказано в документации:
clojure.core / last ([coll]) Возвращает последний элемент в coll, в линейной
время
peek
, с другой стороны, быстрее, чем last
согласно документам:
clojure.core / peek ([coll]) Для списка или очереди, такой же, как первая, для
вектор, такой же, как, но гораздо эффективнее, чем в прошлом. Если
коллекция пуста, возвращает ноль.