首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >car和cdr的简称

car和cdr的简称
EN

Stack Overflow用户
提问于 2021-05-24 23:42:51
回答 1查看 169关注 0票数 1

我试图在一个列表中获取一个特定元素的car/cdr:

代码语言:javascript
复制
(define x7 '(1 3 (5 7) 9))
; The cdr     (3 (5 7) 9)
; The cddr      ((5 7) 9)
; The caddr      (5 7)
; The cdaddr       (7)

但是,如果我对结果执行car,那么我就能得到很大的下降,但是如果我将另一个a添加到简短的表单中,就会得到一个错误:

代码语言:javascript
复制
(car (cdaddr x7)) ; OK
(cadaddr x7)      ; cadaddr: unbound identifier in: cadaddr

简短的表格只会增加五个字符/步骤,还是我在这里遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-25 00:29:19

根据R6RS报告

提供的任意构图,深度可达四层。这些程序总共有二十八种.

这与R5RS和新的R7RS报告相同。当然,没有什么可以阻止实现添加更多内容,但是使用这些可以移除程序的可移植性,因为其他实现可能只提供所需的4深度。

当然,你可以提供你自己的:

代码语言:javascript
复制
(define (cadadadr p)
  (cadar (cdadr p)))

由于Scheme没有任何保留的单词,所以即使语言或实现决定在稍后的时间包含这些单词,这也是有效的。它将永远不会使用新的和使用您的定义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67680068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档