【问题标题】:Scheme Coding Style Questions方案编码风格问题
【发布时间】:2010-11-08 05:27:58
【问题描述】:
我对我的代码的 Scheme 风格感到困惑。
如果表单格式为:
一个。
if()
()
()
或b。
if () ()
()
或 c。
if () () ()
我应该将 cond 子句格式化为
一个。
cond ()
()
或b。
cond
()
()
我什么时候使用单个 ;评论和双重;;?
【问题讨论】:
标签:
functional-programming
lisp
scheme
【解决方案2】:
填写 Doug 对您的具体问题的回答:
(if test
then
else)
(cond
(test1 exp1)
(test2 exp2)
(else exp3))
或者,对于具有长系列表达式的条件:
(cond
(test1
exp1
exp2)
(else
exp3
exp4))
评论约定稍微宽松一些。当我编写仔细的代码时,我会这样做:
;;; new section ;;;
;;; section comments
(define (f g . x)
"docstring goes here"
;; in-function comments
(g x)) ; trailing line comment
但 ; 与 ;; 使用的确切界限各不相同。特别是,有些人(包括我)不太喜欢尾随行 cmets,而是将 ; 用于功能内 cmets,;;; 用于部分 cmets。
【解决方案3】:
Here 是 Lisp 风格指南,here 是推荐的评论风格。
如果你有一个 emacs 风格的编辑器,在你的 s-expression 中输入 C-M-q 应该会为你格式化它;如果您的换行符是合理的(并且 indent-alist 的编辑器配置没有被弄得太糟糕),它将为您提供正确格式化的代码。