2010-11-26 30 views
6

Nếu tôi có một danh sách như thế nàyNhận chỉ số của danh sách trong danh sách trong 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)) 

Và tôi muốn tìm ra chỉ số của (0 3 6), là có một chức năng built-in để làm điều này? POSITION dường như không hoạt động khi mục tìm kiếm tự nó là một danh sách.

Trả lời

13

Xem hyperspec. VỊ TRÍ có thể mất một lập luận :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 

Các thử nghiệm mặc định cho VỊ TRÍ (và các hoạt động chuỗi khác) là EQL, bằng cách này.

+0

Thật kỳ lạ, trang CLHS cho liên kết FIND đến "Quy tắc về chức năng kiểm tra", nhưng trang cho POSITION thì không. Đây là nơi mặc định của 'EQL' là tài liệu: http://www.lispworks.com/documentation/HyperSpec/Body/17_ba.htm – Ken

+0

xin lỗi nhưng ngôn ngữ nào tôi nên chọn trong DrRacket để chạy mã này @ Nietzche-jou –

Các vấn đề liên quan