anchor.diff:                                    (list (get-index-number (subseq p 0 i))))))
       indexTable))
   
  +(defun matchp (char1 char2)
  +  (cond ((char= char1 char2) 0)
  +        (t 1)))
  +
   (defun do-kmp (s p)
     (let* ((strList (coerce s 'list))
            (patList (coerce p 'list))
            (indexTable (make-index-table p))
            (lenPatList (length patList)))
  -    (progn (print strList) (print patList) (print indexTable))
  -    (do* ((strPoint (car strList) (cond ((= patPointNum 0)
  -                                         strPoint)
  -                                        ((char/= (nth patPointNum patList) strPoint)
  -                                         
  -          (patPointNum 0 (cond ((char= (nth patPointNum patList) strPoint)
  -                                (incf patPointNum))
  -                               ((= (nth patPointNum indexTable) 0)
  -                                0)
  -                               ((= (nth patPointNum indexTable) -1)
  -                                0)
  -                               (t (nth patPointNum indexTable)))
  -    ))
  +    ;(progn (print strList) (print patList) (print indexTable) (print lenPatList))
  +    (do* ((strPoint 0 (cond ((= tellStat 0) (incf strPoint))
  +                            ((and (= tellStat 1) (= patPoint 0))
  +                             (incf strPoint))
  +                            ((= tellStat 1) strPoint)))
  +          (patPoint 0 (cond ((= tellStat 0) (incf patPoint))
  +                            ((and (= tellStat 1) (/= (nth patPoint indexTable) -1))
  +                             (nth patPoint indexTable))
  +                            (t 0)))
  +          (tellStat (matchp (nth strPoint strList) (nth patPoint patList))
  +                    (matchp (nth strPoint strList) (nth patPoint patList)))
  +          ;(testP (progn (print strPoint) (print patPoint) (print tellStat)) (progn (print strPoint) (print patPoint) (print tellStat)))
  +          )
  +         ((and (= patPoint (1- lenPatList)) (= tellStat 0))
  +          (print strList) (print patList)
  +          (print (+ (- strPoint lenPatList) 2))
  +          ))))
  +
  
positive.code:                             (setf num (length list1)))
                    num)) pre-table bot-table))
      ;(print indexNum)
      (setf indexNum (max-list indexNum))))
  
  (defun make-index-table (p)
    (let ((pList (coerce p 'list))
  
negative.code:          ;(print strList)
           (setf result (append result (list (subseq strList 0 i)))))
      result))
  #|
  (defun max-list (list)
        (loop for element in list maximizing element))
  |#
  
  (defun get-index-number (str)
    (let ((pre-table (get-pattern-from-head str))
  