Pattern Matching


; Try to match input against optimization patterns.
(defun ptmatch (inp patwd)
 (let (patterns pattern tmp (res 'match-failure))
  (if (setq tmp (assoc inp *compile-time-constants*
                       :test #'equal))
      (cadr tmp)
      (if (and (consp inp)
               (symbolp (car inp))
               (setq patterns
                     (get (car inp) patwd)))
          (progn
            (while (and patterns
                        (eq res 'match-failure))
              (setq res
                    (transf (pop patterns) inp)) )
            (if (eq res 'match-failure) inp res))
          inp) ) ))

Contents    Page-10    Prev    Next    Page+10    Index