我写了一个函数来计算两组的对称差异(4clojure站点上的其中一个问题)。该函数通过了单元测试,但它不像我想的那样干净,因为我有重复的代码。如何在Clojure中的函数中定义函数并引用该函数?
(fn [x y] (set (concat
(keep-indexed #(if (nil? (get y %2)) %2) x)
(keep-indexed #(if (nil? (get x %2)) %2) y))))
很显然,我宁愿是这样的:
(fn [x y] (set (concat (diff x y) (diff y x))))
凡DIFF函数的定义和引用的“内联”,但我不知道该怎么做,在一个FN块。
你实际上可以在4clojure上看到其他人的答案(一旦你完成了这个问题),它应该让你知道如何整理你自己的尝试。 –