list - 检查列表中是否有一定数量的元素

标签 list lisp

我的问题是:

假设有一个列表 (a b c d)

在继续我的代码之前,我想确保其中有 4 个元素。

如果列表显示 (a b c)

我希望它返回 nil,因为这不是我想要的。

谁能帮忙=)?

最佳答案

使用 LENGTH 函数:

(when (>= (length list) 4)
  ;; rest of your code
)

如果你需要一个不扫描整个列表只是为了查看是否有N个元素的方法,你可以使用这个函数:

(defun length-at-least (list n)
  (cond ((zerop n) t)
        (list (length-at-least (cdr list) (1- n)))
        (t nil)))

然后你可以这样做:

(when (length-at-least list 4)
  ;; rest of your code
)

关于list - 检查列表中是否有一定数量的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13169219/

相关文章:

Python:列表参数传递

module - 从包管理器安装 Common Lisp 后,如何使用 CLX/XLIB?

lisp - 为什么引用字符 "' "相对于 '#1=' 的顺序在循环列表中很重要?

linux - Emacs Lisp 使用自定义环境变量生成子进程

javascript - 在 React 中渲染列表

python - 如何打印出两个键的值?

python - Lisp 的 read-eval-print 循环与 Python 的有何不同?

clojure - 我可以不使用 eval 来编写这个宏吗?

python - 查找给定范围内的数字,使给定列表中任何元素的数字的 gcd 始终为 1

python - Ruby 和 Javascript 中 map 的 Python 等价物是什么?