Получить индекс списка в списке в Лиспе - PullRequest
7 голосов
/ 26 ноября 2010

Если у меня есть такой список

((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 Ответ

14 голосов
/ 26 ноября 2010

См. Гиперспец .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.

...