这是我的问题:我想要一个helpme带有地图:r并:g用空向量替换的函数,当且仅当这些键存在时.例如:
输入:
(helpme {:a "1" :r ["1" "2" "3"] :g ["4" "5"]})
Run Code Online (Sandbox Code Playgroud)
输出:
{:a "1" :r [] :g []}
Run Code Online (Sandbox Code Playgroud)
输入:
(helpme {:a "1" :r ["1" "2" "3"]})
Run Code Online (Sandbox Code Playgroud)
输出:
{:a "1" :r []}
Run Code Online (Sandbox Code Playgroud)
我可以定义一个功能"helpme"来做到这一点,但它过于复杂,我觉得必须有一个更容易(更惯用)的方式......
这是我完成的过于复杂的方式,如下所述:
(defn c [new-doc k] (if (contains? new-doc k) (assoc new-doc k []) new-doc))
(defn helpme [new-doc] (c (c new-doc :r) :g))
Run Code Online (Sandbox Code Playgroud)