我怎样才能重构Clojure源代码?

时间:2012-09-15 17:42:41

标签: emacs clojure refactoring elisp

执行4clojure练习,一个目标是提供正确答案,并且可选目标是尽可能提供最短的解决方案(空格不计入),a.k.a code golf。然后,您可以与其他解决方案进行比较。

在做运动时,我首先找到正确的答案。然后,我将手动 重构应用于我的源代码,其中包括将变量名称重命名为单个字符。例如,在应用此基本步骤后,我的代码可能如下所示。

(fn f[s]
   (if (empty? s)
     {}
     (let [[k & r] s
        [v n] (split-with number? r)]
        (assoc (f n) k v))))

人类相当难以理解,但在4Clojure代码高尔夫比赛中得分更高,因为它可以节省很多角色。

为了好奇,你会如何在emacs中自动执行此操作? clojure.core中有重构函数可以帮助吗?我没找到。

2 个答案:

答案 0 :(得分:6)

了解图书馆。例如,您似乎可以使用if-letseq。如果您不考虑使用静态分析工具“作弊”,请查看Kibit

答案 1 :(得分:5)

clojure-refactoring显然可以提供帮助。