问题描述
|
我要缩进以下代码。
lisper如何缩进呢?
对于在哪里放置换行符,我尤其感到困惑。
(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)))))
解决方法
(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
块)
从逻辑上讲,每行应少于80个字符,并将较长的想法分解为较小的块
最重要的是要保持一致!
然后,只需对齐并缩进行,以便标识针对相同的代码深度。