Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_scheme
提交
e1682194
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看板
提交
e1682194
编写于
11月 09, 2022
作者:
G
guenchi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update exercise_03.md
上级
e1e72e78
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
2 deletion
+19
-2
data/1.Scheme初阶/1.Scheme入门/3.引用quote/exercise_03.md
data/1.Scheme初阶/1.Scheme入门/3.引用quote/exercise_03.md
+19
-2
未找到文件。
data/1.Scheme初阶/1.Scheme入门/3.引用quote/exercise_03.md
浏览文件 @
e1682194
...
...
@@ -85,4 +85,22 @@
这个时候我们需要使用高级版的quote:quasiquote,它表示接受结构内的部分求值行为。为简便我们在下面的例子中只使用它的读取器宏
`` ` ``
,它是往右斜的单引号。
同时我们需要
`unquote`
来解引用,它的读取器宏是逗号
`,`
。
\ No newline at end of file
同时我们需要
`unquote`
来解引用,它的读取器宏是逗号
`,`
。
`unquote`
代表它包裹的最外层内容得到执行,如果是用读取器宏
`,`
,即是它最右侧的表达式得到执行。
如
`` `(* ,(+ 1 2) (- 3 4)) ``
会先执行
`(+ 1 2)`
并将输出3放在它原有的位置,其他结构则不会变化:
`'(* 3 (- 3 4))`
。
```
`(* ,(+ 1 2) ,(- 3 4)) -> '(* 3 -1)
`,(* ,(+ 1 2) ,(- 3 4)) -> -3
```
与之配套的还有
`unquote-splicing`
,读取器宏为
`,@`
。 它将求值后得到的新链表展开成为单个的元素。
```
`(1 2 ,(reverse '(5 4 3)) 6 7) -> '(1 2 (3 4 5) 6 7)
`(1 2 ,@(reverse '(5 4 3)) 6 7) -> '(1 2 3 4 5 6 7)
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录