我对代码的Scheme样式感到困惑。
我应该将表格格式化为:
一个。
if()
()
()
或b。
if () ()
()
或c。
if () () ()
我应该将cond子句格式化为
一个。
cond ()
()
或b。
cond
()
()
我什么时候使用单身;评论和加倍;;?
答案 0 :(得分:7)
如果您有emacs样式编辑器,在s-expression中键入C-M-q应该为您格式化;如果您的换行符合理,它将为您提供正确格式化的代码(并且缩进列表的编辑器配置没有太严重)。
答案 1 :(得分:6)
填写Doug针对您的具体问题的答案:
(if test
then
else)
(cond
(test1 exp1)
(test2 exp2)
(else exp3))
或者,对于具有长系列表达的conds:
(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
但;
与;;
用法的确切界限各不相同。特别是,有些人(包括我)不太喜欢尾随注释,而是使用;
进行功能注释,使用;;;
进行部分注释。
答案 2 :(得分:5)
看看Peter Norvig的"Tutorial on Good Lisp Programming Style"虽然你会在任何Scheme / Lisp书中找到你的特定问题的答案。