yes, I have
(defn infix2 [[first-number operator second-number & r]]
(if (empty? r)
(list operator
(if (list? first-number)
(infix2 first-number)
first-number)
(if (list? second-number)
(infix2 second-number)
second-number))
(if (< (get priorities operator) (get priorities (first r)))
(list operator first-number (infix2 (conj r second-number)))
(infix2 (conj r (list operator first-number second-number))))))
this one works also on nested ones like ( ((4 - 2) +2) * 3)