Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_scheme
提交
1af35d26
skill_tree_scheme
项目概览
CSDN 技术社区
/
skill_tree_scheme
通知
1
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
skill_tree_scheme
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1af35d26
编写于
10月 21, 2022
作者:
G
guenchi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
6206730c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
50 addition
and
49 deletion
+50
-49
data/1.Scheme初阶/1.Scheme入门/2.一些解释和约定/exercise_02.md
data/1.Scheme初阶/1.Scheme入门/2.一些解释和约定/exercise_02.md
+0
-47
data/1.Scheme初阶/1.Scheme入门/2.术语/exercise_02.md
data/1.Scheme初阶/1.Scheme入门/2.术语/exercise_02.md
+3
-0
data/1.Scheme初阶/1.Scheme入门/3.标志符/exercise_03.md
data/1.Scheme初阶/1.Scheme入门/3.标志符/exercise_03.md
+47
-2
data/1.Scheme初阶/1.Scheme入门/4.基本数据类型/exercise_04.md
data/1.Scheme初阶/1.Scheme入门/4.基本数据类型/exercise_04.md
+0
-0
data/1.Scheme初阶/1.Scheme入门/5.列表list/exercise_05.md
data/1.Scheme初阶/1.Scheme入门/5.列表list/exercise_05.md
+0
-0
data/1.Scheme初阶/1.Scheme入门/6.定义define/exercise_04.md
data/1.Scheme初阶/1.Scheme入门/6.定义define/exercise_04.md
+0
-0
未找到文件。
data/1.Scheme初阶/1.Scheme入门/2.一些解释和约定/exercise_02.md
已删除
100644 → 0
浏览文件 @
6206730c
# 约定的代码风格
以下的代码风格并不由编译器严格要求,但是它能帮助你更好的编写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 ...))
```
\ No newline at end of file
data/1.Scheme初阶/1.Scheme入门/2.术语/exercise_02.md
0 → 100644
浏览文件 @
1af35d26
# 术语
data/1.Scheme初阶/1.Scheme入门/3.标志符/exercise_03.md
浏览文件 @
1af35d26
...
...
@@ -56,4 +56,49 @@ Scheme对标识符的宽容度远大于其他语言,你可以在标识符里
`->`
组合在标志符开头是合法的。
> 可以使用在标识符里的字符有:`? ! . + - * / < = > : $ % ^ & _ ~`。
\ No newline at end of file
> 可以使用在标识符里的字符有:`? ! . + - * / < = > : $ % ^ & _ ~`。比起记住它们,更好的办法是记住那些禁止使用的字符。
以下的代码风格并不由编译器严格要求,但是它能帮助你更好的编写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 ...))
```
\ No newline at end of file
data/1.Scheme初阶/1.Scheme入门/4.
定义define
/exercise_04.md
→
data/1.Scheme初阶/1.Scheme入门/4.
基本数据类型
/exercise_04.md
浏览文件 @
1af35d26
文件已移动
data/1.Scheme初阶/1.Scheme入门/5.
数据类型
/exercise_05.md
→
data/1.Scheme初阶/1.Scheme入门/5.
列表list
/exercise_05.md
浏览文件 @
1af35d26
文件已移动
data/1.Scheme初阶/1.Scheme入门/6.定义define/exercise_04.md
0 → 100644
浏览文件 @
1af35d26
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录