4clojureのエクササイズを行う場合、1つの目標は正しい答えを提供することであり、オプションの目標は可能な限り最短のソリューション(スペースはカウントされません)、別名コードゴルフを提供することです。その後、他のソリューションと比較できます。
エクササイズをするとき、私は最初に正しい答えを見つけます。次に、ソースコードに手動の リファクタリングを適用します。これは、変数名の名前を1文字に変更することで構成されます。たとえば、この基本的な手順を適用した後、私のコードは次のようになります。
(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に役立つリファクタリング関数はありますか?見つかりませんでした。