Skip to content

Instantly share code, notes, and snippets.

@xieyunzi
Last active November 2, 2017 08:30
Show Gist options
  • Save xieyunzi/7e3f72737640a8fb52f48275d6363631 to your computer and use it in GitHub Desktop.
Save xieyunzi/7e3f72737640a8fb52f48275d6363631 to your computer and use it in GitHub Desktop.
clojure macro parse args
(defmacro def-test
[name args & body]
`(defn ~name ~args
(let [[params#] ~args
parsed-args# (parse-args params#)
new-param-data# (merge parsed-args# {:uuid "0efecd84-bba0-4a95-a6dd-a3c3f7071057"})
new-params# (merge params# {:as new-param-data#})
]
(str ~name ", " ~args ", parsed: " parsed-args# ", new-args: " new-params#)
)))
(def-test aaa
[{:keys [id] :as params}]
#_[params]
"ok")
(aaa {:id "133223"})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment