SICP汽车/CDR练习题问题
我在这里尝试 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看来我只是犯傻了。这工作正常:
Looks like I was just being silly. This works fine: