(defn multiply
([] 1)
([x] x)
([x y] (* x y))
([x y & more]
(reduce * (* x y) more)))
(multiply 2 3 4 5) ; 120