2010-11-26 42 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