TRANS


(defun trans (x patwd)
 (let (xp tail tmp)
  (if (consp x)
      (if (and (not (member (first x)
                     '(print princ terpri format random)))
               (rest x)
               (symbolp (first x))
               (fboundp (first x))
               (every #'constantp (rest x)))
          (eval x)
          (progn        ; translate args first
           (setq tail (pttransl (rest x) patwd))
           (if (symbolp (first x))
               (setq xp (ptmatch
                          (if (eq tail (rest x))
                              x
                              (cons (first x) tail))
                          patwd))
               (progn (setq tmp (trans (first x) patwd))
                      (setq xp (if (and (eq tail (rest x))
                                        (eql tmp (first x)))
                                   x
                                   (cons tmp tail)))))
           (if (eq x xp) x (trans xp patwd)) ))
      (if (and (symbolp x)
               (setq tmp (assoc x *compile-time-constants*)))
          (cadr tmp)
          x)) ))

Contents    Page-10    Prev    Next    Page+10    Index