Function: math-simplify-step

math-simplify-step is a byte-compiled function defined in calc-alg.el.gz.

Signature

(math-simplify-step A)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-alg.el.gz
;; The following has a "bug" in that if any recursive simplifications
;; occur only the first handler will be tried; this doesn't really
;; matter, since math-simplify-step is iterated to a fixed point anyway.
(defun math-simplify-step (a)
  (if (Math-primp a)
      a
    (let ((aa (if (or math-top-only
		      (memq (car a) '(calcFunc-quote calcFunc-condition
						     calcFunc-evalto)))
		  a
		(cons (car a) (mapcar #'math-simplify-step (cdr a))))))
      (and (symbolp (car aa))
	   (let ((handler (get (car aa) 'math-simplify)))
	     (and handler
		  (while (and handler
			      (equal (setq aa (or (funcall (car handler) aa)
						  aa))
				     a))
		    (setq handler (cdr handler))))))
      aa)))