鉴于2个列表,我想确保它们的大小相同,我在使用此代码时遇到了困难。我应该使用变量来做到这一点吗?
(defun samesize (list1 list2)
(cond (;logic here) T))
答案 0 :(得分:7)
Common Lisp和elisp都有length
:
(defun samesize (list1 list2)
(= (length list1) (length list2)))
答案 1 :(得分:2)
如果您想自己实现,可以使用递归。
如果两个列表都是空的,则它们的大小相同。如果一个是空的而另一个不是,则它们的大小不同。如果这些都不是真的,那么它们的大小相同,因为那些列表没有一个元素(即它们的cdr
- s)
答案 2 :(得分:0)
无需明确使用长度两次。
(defun samesize (l1 l2)
(apply #'= (mapcar #'length (list l1 l2)))
这可能看起来像是浪费了精力,但是对于更长的函数名称,这种事情很有用。
我也希望展示一个新概念。
干(不要重复)