首页 > 解决方案 > 如何在特殊元素前面获取列表的一部分?

问题描述

使用 MEMBER,我得到了搜索到的元素和 LIST 的其余部分。但是,在搜索到的元素到来之前,我是如何获取这些元素的呢?

(CDR (MEMBER 'DURCH '(ZEIT MAL LAENGE DURCH MASSE MAL ZEIT))); with this I get (MASSE MAL ZEIT)
;But how did I get (ZEIT MAL LAENGE) 

标签: lispcommon-lisp

解决方案


有时这些函数很容易编写,解决方案也很容易阅读,以至于没有必要确定哪种标准函数组合可以满足您的需求:

(defun elts-before (l elt &key (test #'eql))
  (loop for e in l
        until (funcall test e elt)
        collect e))

推荐阅读