SICP автомобиль / CDR практика проблема с вопросом - PullRequest
3 голосов
/ 26 марта 2011

Я пробую этот "онлайн-репетитор" для 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) * * 1014 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)

Есть ли другой способ сделать это?

1 Ответ

6 голосов
/ 26 марта 2011

Похоже, я просто был глупым.Это прекрасно работает:

(cdr(cdr(cdr thing)))
...