http://pastebin.com/d2294a374這個Clojure代碼是否正確縮進?
我已經發布了以2種不同的方式縮進的代碼。我在這裏感到困惑,因爲我不確定當一個函數有多個參數時該怎麼做。每個參數應該在不同的線上還是相同?此外,當我們有這樣的事(DEF XYZ(FN ABC [A1 + A2] ...沒有(FN ABC ......在不同的線路走?
我讀從http://mumble.net/~campbell/scheme/style.txt以下,但事實並非如此似乎多大意義,我。
**縮進和對齊
任何形式的操作者,即,下面的開口 輪支架上的第一窗體,確定用於縮進或對準剩餘 形式的規則在這個位置的許多名字表示特殊的 對齊或縮進規則;這些是具有特定參數結構的特殊運算符,宏或 過程。
如果首體是一個非特殊的名字,然而,然後如果第二 子窗體是在同一行,對齊所有以下 子窗體的起始列與第二子窗體的。如果第二個子窗體位於以下行的 上,請將其起始列與第一個子窗體 的起始列對齊,並對所有其餘子窗體執行相同的操作。
一般來說,Emacs會正確縮進Lisp代碼。在任何代碼上運行`C-M-q' (indent-sexp)以確保其正確縮進,並且 配置Emacs,以便適當縮進任何非標準窗體 。
不可接受:
(+ (sqrt -1)
(* x y)
(+ p q))
(+
(sqrt -1)
(* x y)
(+ p q))
可接受:
(+ (sqrt -1)
(* x y)
(+ p q))
(+
(sqrt -1)
(* x y)
(+ p q))
理由:柱狀對準允許讀者遵循任何操作的 操作數直截了當,簡單地通過掃描 向下或向上以匹配共同的專欄。縮進規定 結構;混淆縮進是希望 派生結構而不手動匹配括號的讀者的負擔。
的引擎收錄死亡。 – 2012-11-25 05:04:38