2011-03-26 88 views
3

我嘗試這種「網上家教」爲SICP這裏:http://icampustutor.csail.mit.edu/6.001-public/tutor.cgi?op=registration-pageSICP車/ CDR實踐問題的問題

我期待在以下問題:

假設我們已經評估

(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)
(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) 

是否有另一種方式做到這一點?

+0

如果任何版主看到這一點,請關閉它。 – ehsanul 2011-03-26 10:14:23

+3

沒有必要關閉,自我回答的問題是可以接受的:) – leppie 2011-03-26 10:21:00

+0

這看起來像一個偉大的網站,我試圖開始使用sicp,我剛剛註冊。乾杯! – bplus 2011-06-01 07:29:38

回答

6

看起來我只是很傻。這工作正常:

(cdr(cdr(cdr thing)))