2010-11-26 38 views
6

如果我有这样的列表中获取列表索引和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似乎不起作用。

回答

13

请参阅hyperspec。位置可采取: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 

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

+0

奇怪的是,FIND的CLHS页面链接到“关于测试函数的规则”,但是POSITION的页面没有。这里是`EQL`的默认记录:http://www.lispworks.com/documentation/HyperSpec/Body/17_ba.htm – Ken 2010-11-27 00:30:53