# 约定的代码风格 以下的代码风格并不由编译器严格要求,但是它能帮助你更好的编写Scheme程序,还有助于其他人更好的阅读你的代码。 *** 使用短-连接标识符词组 *** 在Scheme惯例中我们不使用驼峰命名法或者下划线。在此我特别不建议使用下划线连接词组。因为当你的Scheme程序需要链接C模块时,C程序将和Scheme程序共享命名空间。这个时候用`a-c-program`来包装C语言的`a_c_program`就显得特别一目了然。 *** 全大写标识符表示常量 *** 继承自C程序的常量表示法是个良好的习惯。在Scheme里没有常量,但至少你应该知道它禁止更改。 *** 用三个 * 号包围的标识符表示全局变量 *** 当看见如`***value***`包裹的全局变量,在引入有副作用的过程时就需要三思。 *** 标识符用后缀?表示返回布尔值 *** `char?` `list?` 这些过程都返回布尔值。 *** 标识符用!后缀表示过程有副作用 *** `set!`表示它改变了指针指向的某些值,虽然它的返回有可能是布尔值。 *** 标识符用->表示类型转换 *** 请记住Scheme是强类型语言,在惯例中,我们使用`->`来表示从左边的类型转换到右边的类型。比如`list->vector`。 *** 用两个空格缩进 *** 因为有时需要嵌套两个左空格`(`,有且仅有使用两个空格的缩进才会不让你的缩进乱了套。 *** 用空格对齐选择的分支 *** 在选择的分支,填充多余的空格来让分支对齐。而不是只使用两个空格。 ``` (if test? consequent alternative) (cond ((clause1 ...) (do ...)) ((clause2 ...) (do ...)) ... (else ...)) ```