这是我的代码:
(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
有什么问题?
答案 0 :(得分:6)
从小处开始。
(define mylist '(1 2 3))
(display mylist)
(display (car mylist))
(display (car (mylist)))
依次运行每一个,看看你在每一步得到了什么。一旦你理解了为什么你得到你的输出,那么你应该能够修复你的问题中的代码。
答案 1 :(得分:2)
在Scheme中,(未引用的)括号表示功能应用。所以(car(step1_list2))尝试执行step1_list2作为一个过程(然后拿走结果的汽车)。相反,你想要:
(car step1_list2)