2012-09-15 10 views
8

エクササイズ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にリファクタリング機能がありますか?私は何も見つかりませんでした。

答えて

6

ライブラリを学んでください。たとえば、if-letまたはseqのように表示されます。静的解析ツール「不正行為」の使用を検討していない場合は、Kibit

+0

if-letまたはseqのためのYeh thnx、私はそれらを知っています。実際にここで抽出されたコードは、説明の目的のためだけです。 Kibitへのリンクありがとうございます。実際に私はそのソースコードを調べて、私が知らなかった新しい機能を発見しています:歩くとプレウォーク。私が探していたもののように、それは本当に匂いがする医者から。ありがとう:-) –

関連する問題