我写了一个函数来计算两组的对称差异(4clojure站点上的一个问题).该函数通过了单元测试,但考虑到我有重复的代码,它并不像我想的那样干净.
(fn [x y] (set (concat
(keep-indexed #(if (nil? (get y %2)) %2) x)
(keep-indexed #(if (nil? (get x %2)) %2) y))))
Run Code Online (Sandbox Code Playgroud)
显然我更喜欢这样的东西:
(fn [x y] (set (concat (diff x y) (diff y x))))
Run Code Online (Sandbox Code Playgroud)
diff函数定义并引用"inline",但我不知道如何在一个fn块中执行此操作.
clojure ×1