我正在尝试编写一个函数,可以确定列表列表是否只包含数字。例如'('(1 2)'(3 4))=> t'而'('(1 2)'(3 x))=>零。我无法让我的代码工作,并感谢任何帮助!我一直在使用每一个。这是最好的方法吗?到目前为止,这是我的代码。
(defun list-all-numbers(l)
(every #'numberp l))
(defun list-of-list-numbers(l)
(every #'list-all-numbers l))
答案 0 :(得分:3)
您的功能运作良好:
? (LIST-OF-LIST-NUMBERS '((1 2) (3 4)))
T
? (LIST-OF-LIST-NUMBERS '((1 2) (3 x)))
NIL
但问题是您在示例中使用了过多的引用:
? '( '(1 2) '(3 4) )
('(1 2) '(3 4))
? (car '( '(1 2) '(3 4) ))
'(1 2)
? (caar '( '(1 2) '(3 4) ))
QUOTE
但你只想要
? '((1 2) (3 4))
((1 2) (3 4))
? (car '((1 2) (3 4)))
(1 2)
? (caar '((1 2) (3 4)))
1