Я пишу простую функцию для цикла через пару списков и вернуть истинным или ложным для каждого элемента, является ли любой из символов F.LISP сравнить два списка с помощью цикла
Это в конец длинной строки функций и ввода будет выглядеть следующим образом:
«(FEEEEFEEFFFFEEEE) » (EFEEEEEEFFFFEEFE)
Вот как это выглядит на данный момент.
(defun finalcalc (tree1 tree2)
(loop :for e1 :in tree1
:for e2 :in tree2
:nconc (if (or (eq e1 'F)
(eq e2 'F))
(print 'success))))
Я сделал ошибку здесь. Я не уверен, что это мой цикл или мой оператор if. В нем говорится, что я попытался взять cdr успеха, который не является listp.
Может ли кто-нибудь объяснить проблему?
Спасибо! Была ли моя ошибка просто использованием: nconc? – JT93
@ JT93 Кроме того, у вас нет альтернативы да. ': collect' чаще встречается, если вы хотите создать новый список из цикла. Посмотрите на [Loop for black belt] (http://www.gigamonkeys.com/book/loop-for-black-belts.html) для получения дополнительных примеров. – Sylwester