如果我知道lisp中列表中元素的位置,那么我怎样才能检索知道其位置的元素。它有预定义的功能吗?
答案 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。