我似乎被卡住试图通过字符串循环找到不在其他字符串中的字符。程序的目标是循环一个字符串并记录不在另一个字符串中的字符。所有检查完成后,不在另一个字符串中的字符将被打印出来。他们可能不会重复,因此我尝试使用三个循环。循环虽然字符串
我想调试下面的代码,因为我必须最终检查两个字符串对彼此,我想手动做这个知道如何。
CG-USER(258): (defun stringprod (string1 string2)
(let ((newString nil))
(let ((letterSearchOn nil))
(loop for i from 0 below (length string1)
always
(setf (letterSearchOn (char string1 i))
(loop for j from 0 below (length string2)
(for ch = (char string2 j)
(/when (find ch letterSearchOn :test #'equal)
(append newString ch)))))))))
STRINGPROD
CG-USER(260): (stringprod "abc" "abc")
Error: (FOR CH = (CHAR STRING2 J)
(/WHEN (FIND CH LETTERSEARCHON :TEST #'EQUAL)
(APPEND NEWSTRING CH))) found where LOOP keyword expected.
Current LOOP context: FOR J FROM 0 BELOW (LENGTH STRING2)
(FOR CH = (CHAR STRING2 J)
(/WHEN (FIND CH LETTERSEARCHON :TEST #'EQUAL) (APPEND NEWSTRING CH))).
[condition type: PROGRAM-ERROR]
CG-USER(261):
这是一个很棒的解决方案,虽然我希望能够调试代码中列出的错误消息。 – Tequila 2012-02-13 05:41:05