【问题标题】:Lisp, nested every statementsLisp,嵌套每个语句
【发布时间】:2014-09-06 21:10:02
【问题描述】:

我正在尝试编写一个函数来确定列表列表是否仅包含数字。例如 '( '(1 2) '(3 4) ) => t 而 '( '(1 2) '(3 x) ) => nil。我无法让我的代码正常工作,不胜感激!我一直在使用每一个。这是最好的方法吗?到目前为止,这是我的代码。

(defun list-all-numbers(l)
  (every #'numberp l))

(defun list-of-list-numbers(l)   
  (every #'list-all-numbers l))

【问题讨论】:

标签: lisp common-lisp


【解决方案1】:

你的函数运行良好:

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

【讨论】:

  • @ajputnam 欢迎来到 Stack Overflow ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 2019-01-13
  • 2011-03-21
  • 2013-08-03
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多