小编Mat*_*hew的帖子

如何在Clojure中定义函数内的函数并引用该函数?

我写了一个函数来计算两组的对称差异(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

15
推荐指数
2
解决办法
3211
查看次数

标签 统计

clojure ×1