У меня есть файл с именем dictionary.lisp
. Это включает некоторые слова, такие какнайти список в другом списке
(defparameter *dictionary* '(
(a b a)
(a b a d i)
.
.
)
Я пытаюсь найти их в виде списка. Я пробовал следующие операции
[5]> (find '((a b a d i)) *dictionary* :test 'equal )
NIL
[6]> (find '((a b a d i)) *dictionary* :test #'equalp )
NIL
[7]> (member '((a b a d i)) *dictionary* :test 'equal )
NIL
[8]> (member '((a b a d i)) *dictionary* :test #'equalp )
NIL
[9]> (find '((a b a d i)) *dictionary* :test #'subsetp )
NIL
Есть ли какая-либо функция lisp, которая может возвращать non-nil?
Вы ищете неправильную вещь. Не '(find '((abadi)) ...)', do '(find' (abadi) ...)' с равным или равным тестом (который вы делаете правильно в первых четырех примерах) , –
Каков ваш совет? как я могу получить ожидаемый результат? @JoshuaTaylor –
Думаю, я написал это довольно четко в этом комментарии. В списке есть список (a b a d i), который представляет собой список из пяти символов и ((a b a d i)), который представляет собой список из одного списка, содержащего пять символов. Ваш словарь содержит (a b a d i), но он не содержит ((a b a d i)). В ответе я привел правильный пример. –