エクササイズ4clojureエクササイズの1つの目標は、正しい答えを提供することです。オプションで、可能な限り最短の解決策(スペースはカウントされません)、a.k.aコードゴルフを提供することです。その後、他のソリューションと比較することができます。Clojureのソースコードをどのようにリファクタリングできますか?
エクササイズをするとき最初にが正しい答えを見つけます。変数名を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にリファクタリング機能がありますか?私は何も見つかりませんでした。
if-letまたはseqのためのYeh thnx、私はそれらを知っています。実際にここで抽出されたコードは、説明の目的のためだけです。 Kibitへのリンクありがとうございます。実際に私はそのソースコードを調べて、私が知らなかった新しい機能を発見しています:歩くとプレウォーク。私が探していたもののように、それは本当に匂いがする医者から。ありがとう:-) –