(->> v (map #(add-perspective % matrix) (map #(viewport %))))
совпадает с
(map #(add-perspective % matrix) (map #(viewport %)) v)
Но
(map #(viewport %))
Это не последовательность, это функция преобразователя.
Вы, вероятно, имели в виду этобыть:
(->> v (map #(add-perspective % matrix)) (map #(viewport %)))
Трудно обнаружить отладку такого рода ошибки, когда вы помещаете несколько операций в одну строку, поэтому я рекомендую вам использовать разрыв строки
(->> v
(map #(add-perspective % matrix))
(map #(viewport %)))
Это делаетлегче следовать шагам и, следовательно, группировке.