SICP汽车/CDR练习题问题

发布于 2024-10-26 23:33:08 字数 1076 浏览 6 评论 0原文

我在这里尝试 SICP 的“在线导师”:http://icampustutor.csail.mit.edu/6.001-public/tutor.cgi?op=registration-page

我正在查看以下问题:

假设我们已经评估过 表格

(define thing (cons (cons (cons 1 nil) nil)
                    (cons (cons 2 (cons 3 (cons 4 nil)))
                          (cons 2
                               (cons 3 nil))))) Write expressions

仅使用汽车、CDR 以及其 值是给定的列表结构 下面。

(1)
1
(2 3)
(3)

我对最后一项有疑问。我找到了一种使用反引号和取消引号的方法,但在线教程不接受答案。使用小鸡计划的解释器:

#;3> (define nil '())
#;4>  (define thing (cons (cons (cons 1 nil) nil)
--->                         (cons (cons 2 (cons 3 (cons 4 nil)))
--->                               (cons 2
--->                                    (cons 3 nil)))))
#;5> 
#;5> thing
(((1)) (2 3 4) 2 3)

#;25> `(,(car(cdr(car(cdr thing)))))
(3)

还有其他方法可以做到这一点吗?

I'm trying out this "online tutor" for SICP here: http://icampustutor.csail.mit.edu/6.001-public/tutor.cgi?op=registration-page

I'm looking at the following question:

Assume that we have already evaluated
the form

(define thing (cons (cons (cons 1 nil) nil)
                    (cons (cons 2 (cons 3 (cons 4 nil)))
                          (cons 2
                               (cons 3 nil))))) Write expressions

using only car, cdr, and thing whose
values are the list structures given
below.

(1)
1
(2 3)
(3)

I'm having issues with the last one. I figured out a way using back-quote and unquote, but the online tutorial won't accept the answer. Using chicken scheme's interpreter:

#;3> (define nil '())
#;4>  (define thing (cons (cons (cons 1 nil) nil)
--->                         (cons (cons 2 (cons 3 (cons 4 nil)))
--->                               (cons 2
--->                                    (cons 3 nil)))))
#;5> 
#;5> thing
(((1)) (2 3 4) 2 3)

#;25> `(,(car(cdr(car(cdr thing)))))
(3)

Is there another way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玉环 2024-11-02 23:33:08

看来我只是犯傻了。这工作正常:

(cdr(cdr(cdr thing)))

Looks like I was just being silly. This works fine:

(cdr(cdr(cdr thing)))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文