在Lisp中获取列表中的列表索引

时间:2010-11-26 20:11:23

标签: lisp common-lisp

如果我有这样的清单

((0 1 2) (3 4 5) (6 7 8) (0 3 6) (1 3 7) (2 4 8) (0 4 8) (2 4 6))

我想找到(0 3 6)的索引,是否有内置函数来执行此操作?当搜索项本身就是一个列表时,POSITION似乎不起作用。

1 个答案:

答案 0 :(得分:14)

hyperspec。 POSITION可以采用:test参数:

(position '(0 3 6)
          '((0 1 2) (3 4 5) (6 7 8) (0 3 6) (1 3 7) (2 4 8) (0 4 8) (2 4 6))
          :test #'equal))
3

顺便说一下,POSITION(和其他序列操作)的默认测试是EQL。