получить 7 не (7) из списка? - PullRequest
5 голосов
/ 04 ноября 2011

Вот мой код:

  (define step1_list1 '(1 3 (5 7) 9))

  (car (cdr (cdr (step1_list1))))


   (define step1_list2 '((7)))

   (car (step1_list2))


   (define step1_list3 '(1 (2 (3 (4 (5 (6 7)))))))

   (car (cdr (cdr (cdr (cdr (cdr step1_list3))))))

  ))

Запуск этого кода вызывает ошибку:

(1 3 (5 7) 9) is not applicable

В чем проблема?

Ответы [ 2 ]

6 голосов
/ 04 ноября 2011

Начните с малого.

(define mylist '(1 2 3))

(display mylist)

(display (car mylist))

(display (car (mylist)))

Запустите каждый из них по очереди и посмотрите, что вы получите на каждом шаге. Как только вы поймете, почему вы получаете вывод, который вы делаете, вы сможете исправить код в своем вопросе.

2 голосов
/ 04 ноября 2011

В схеме (без кавычек) скобки означают применение функции.Таким образом (car (step1_list2)) пытается выполнить step1_list2 как процедуру (и затем взять машину результата).Вместо этого вы хотите:

(car step1_list2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...