anchor.diff:                              (setf num (length list1)))
                     num)) pre-table bot-table))
       ;(print indexNum)
  -    (setf indexNum (max-list indexNum))))
  +    (setf indexNum (MX:max-list indexNum))))
   
   (defun make-index-table (p)
     (let ((pList (coerce p 'list))
  
positive.code:                                   (list (get-index-number (subseq p 0 i))))))
      indexTable))
  
  (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)))
      ))
  
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))
  