如何访问列表中的元素?
答
您尝试使用它之前真的应该读的介绍到的elisp什么的。 Emacs在某些发行版中附带的Elisp手册非常好。
(nth 0 mylist)
http://www.gnu.org/software/emacs/elisp/html_node/List-Elements.html
答
如果你知道该元素列表中的位置,然后使用(nth 0 mylist)
,如@triplee表示。
如果你想测试的元素相等(在这种情况下,字符串相等),然后使用此:
(car (member "y" mylist))
(member "y" mylist)
返回子列表(尾)("y" "z")
和car
返回子列表的第一个元素(car
是一样的nth
与0
第一ARG)。
如果你希望字符串不在列表中的一员,那么member
返回空列表nil
(又名()
),并将该列表的car
返回nil
。所以member
是测试列表成员都(一)谓词(返回nil' for not present and non-
nil`的存在)和(b)的方式来提取第一子列表(尾),其中包含你所寻求的元素。
答
阅读小节List Elements和GNU Emacs Lisp Reference Manual部分Lists的Using Lists as Sets。手册是你的朋友,当你对Elisp有疑问时,这是你应该看的第一个地方。通过按F1访问手动Emacs中,查看它使用信息系统我米elisp
输入,或手动周围信息模式进行导航。
如果你写严肃的elisp代码,我建议安装dash
包,里面有很多的功能,查询和转换列表。例如,如果你想找到一个满足谓词第一(或最后一个)元素,使用-first
或-last
:
(-first 'evenp '(1 2 3 4 5 6)) ; 2
(-last 'evenp '(1 2 3 4 5 6)) ; 6
并提供时,你应该接受一个答案。在这种情况下,假设你知道元素的列表位置,@ triplee的答案很好。 – Drew