Functional programming 方案编码风格问题
我对代码的方案样式感到困惑 我是否应将if表格格式化为: a 或者b 或者cFunctional programming 方案编码风格问题,functional-programming,lisp,scheme,Functional Programming,Lisp,Scheme,我对代码的方案样式感到困惑 我是否应将if表格格式化为: a 或者b 或者c if () () () 我是否应该将cond子句的格式设置为 a 或者b 我什么时候用单人床;注释和双引号 是Lisp风格的指南,也是推荐的注释风格 如果您有一个emacs样式编辑器,那么在s表达式中键入C-M-q应该可以为您设置格式;如果换行符是合理的(并且缩进列表的编辑器配置没有受到太大的影响),它将使您的代码格式正确 要填写Doug对您具体问题的回答: (if test then else)
if () () ()
我是否应该将cond子句的格式设置为a 或者b 我什么时候用单人床;注释和双引号 是Lisp风格的指南,也是推荐的注释风格
如果您有一个emacs样式编辑器,那么在s表达式中键入C-M-q应该可以为您设置格式;如果换行符是合理的(并且缩进列表的编辑器配置没有受到太大的影响),它将使您的代码格式正确 要填写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
但是
的确切边界代码>vs代码>用法各不相同。特别是,有些人(包括我)不太喜欢尾随行注释,而是使用代码>用于函数内注释和代码>用于部分注释。尽管您可以在任何Scheme/Lisp书中找到特定问题的答案,但请看一下Peter Norvig的答案。注意,大多数Scheme没有“文档字符串”。
cond
()
()
(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