做 4clojure练习中,一个目标是提供正确答案,可选目标是提供尽可能最短的解决方案(不计入空格),即代码高尔夫。然后,您可以与其他解决方案进行比较。
做运动时我第一 找到正确的答案。然后我申请了 手册 重构 到我的源代码,其中包括将变量名称重命名为单个字符。例如,应用此基本步骤后,我的代码可能如下所示。
(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 中是否有重构功能可以提供帮助?我没有找到。
最佳答案
学习图书馆。例如,您似乎可以使用 if-let
或 seq
.如果您不考虑使用静态分析工具“作弊”,请查看 Kibit
关于emacs - 如何重构 Clojure 源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12439650/