(defn multi
[coll x]
(vec (map #(* % x) coll)))
(defmacro lolmacro
[& lists]
`(fn [& xs#]
(vec (map multi '~lists xs#))))
;; => (def loltwo (lolmacro [1 2 3] [4 5 6]))
;; => (def lolthree (lolmacro [1 2 3] [4 5 6] [7 8 9]))
;; => (loltwo 2 1)
;; [[2 4 6] [4 5 6]]
;; => (lolthree 3 2 1)
;; [[3 6 9] [8 10 12] [7 8 9]]
KGRlZm4gbXVsdGkKCVtjb2xsIHhdCgkodmVjIChtYXAgIygqICUgeCkgY29sbCkpKQoKKGRlZm1hY3JvIGxvbG1hY3JvCglbJiBsaXN0c10KCWAoZm4gWyYgeHMjXQoJCSh2ZWMgKG1hcCBtdWx0aSAnfmxpc3RzIHhzIykpKSkKCjs7ID0+IChkZWYgbG9sdHdvIChsb2xtYWNybyBbMSAyIDNdIFs0IDUgNl0pKQo7OyA9PiAoZGVmIGxvbHRocmVlIChsb2xtYWNybyBbMSAyIDNdIFs0IDUgNl0gWzcgOCA5XSkpCjs7ID0+IChsb2x0d28gMiAxKQo7OyBbWzIgNCA2XSBbNCA1IDZdXQo7OyA9PiAobG9sdGhyZWUgMyAyIDEpCjs7IFtbMyA2IDldIFs4IDEwIDEyXSBbNyA4IDldXQ==