如何通过了解它在lisp中的位置来找到列表元素?

时间:2014-08-26 09:07:43

标签: lisp common-lisp clisp

如果我知道lisp中列表中元素的位置,那么我怎样才能检索知道其位置的元素。它有预定义的功能吗?

2 个答案:

答案 0 :(得分:4)

仅限列表NTH

CL-USER> (nth 2 '(1 2 3 4 5)) 
3

对于SEQUENCES(向量,字符串,列表......),有ELT

CL-USER> (elt '(1 2 3 4 5) 2) 
3

如果你真的需要很多来按索引访问元素,我建议你考虑使用向量(和aref的访问元素)而不是列表,特别是如果你有登录序列,因为访问列表中的索引元素可能需要沿着所有列表传递到您的元素。

当然,如果您的数据量很少,那么您感觉不到任何差异,但使用适合我的东西看起来不错。

答案 1 :(得分:-5)

我取决于你的口味。最好的方法是只编写一个返回list-item的2参数函数。参数1 item_index,param 2列表,在您移动时递归减少索引并返回第一个索引的第0个。请注意,您需要确定列表中的汽车是索引1还是索引0.人类更喜欢一个,计算机0。