我有以下代码及其评论作为评论:
(require scheme/mpair)
(list) ;; '()
(mlist) ;; '()
(cons 'un (list)) ;; '(un)
(list 'un (list)) ;; '(un ())
(mcons 'un (mlist)) ;; (mcons 'un '())
(mlist 'un (mlist)) ;; (mcons 'un (mcons '() '()))
Run Code Online (Sandbox Code Playgroud)
我的问题:
为什么第3个表达式不返回'(),而不是'(un . ())?
为什么不将第5个表达式和第6个表达式返回相同的东西?
作为一般示例,(list x y z)是缩写(cons x (cons y (cons z empty))).并且(list)是一个空列表,即empty.所以(list 'un (list))它只是一个缩写(cons 'un (cons empty empty)) - 即包含两个元素的列表:符号'un和空列表.mlist同样是用于序列的缩写mcons"ES到empty在最后.
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |