如何正确缩进clojure/lisp?
我想缩进下面的代码。 lisper将如何缩进这个? 我特别不知道在哪里放新词如何正确缩进clojure/lisp?,clojure,lisp,indentation,code-formatting,primes,Clojure,Lisp,Indentation,Code Formatting,Primes,我想缩进下面的代码。 lisper将如何缩进这个? 我特别不知道在哪里放新词 (defn primes [n] (letfn [(sieve [table removal] (assoc table removal false)) (primebools [i table] (cond (= i n) table
(defn primes [n]
(letfn [(sieve [table removal]
(assoc table removal false))
(primebools [i table]
(cond
(= i n) table
(table i) (recur (inc i)
(reduce sieve
table
(range (* i i) n i)))
:else (recur (inc i)
table)))]
(let [prime? (primebools 2 (apply vector (repeat n true)))]
(filter prime? (range 2 n)))))
除了@dnolen的答案外,我通常在出现错误时添加新行
cond
块)(defn primes [n]
(letfn [(sieve [table removal]
(assoc table removal false))
(primebools [i table]
(cond
(= i n) table
(table i) (recur (inc i)
(reduce sieve table
(range (* i i) n i)))
:else (recur (inc i) table)))]
(let [prime? (primebools 2 (apply vector (repeat n true)))]
(filter prime? (range 2 n)))))
如果对缩进有疑问,请以clojure模式将其粘贴到Emacs中,然后使用
C-M-q
。把换行放在感觉合适的地方。我会将参数缩进到同一列中的recur
。