Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.47 KB | None | 0 0
  1. => (defmacro vararg
  2. [method object & args]
  3. (let [[regular [_ t & variable]] (split-with #(not= % '|) args)]
  4. `(. ~object ~method ~@regular (into-array ~t ~(vec variable)))))
  5. #'user/vararg
  6. => (macroexpand-1 '(vararg get java.nio.file.Paths "foo" | String "bar" "baz"))
  7. (. java.nio.file.Paths get "foo" (clojure.core/into-array String ["bar" "baz"]))
  8. => (vararg get java.nio.file.Paths "foo" | String "bar" "baz")
  9. #object[sun.nio.fs.UnixPath 0x14ebb640 "foo/bar/baz"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement