Function: math-evaluate-expr-rec

math-evaluate-expr-rec is a byte-compiled function defined in calc-ext.el.gz.

Signature

(math-evaluate-expr-rec X)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-ext.el.gz
(defun math-evaluate-expr-rec (x)
  (if (consp x)
      (if (memq (car x) '(calcFunc-quote calcFunc-condition
					 calcFunc-evalto calcFunc-assign))
	  (if (and (eq (car x) 'calcFunc-assign)
		   (= (length x) 3))
	      (list (car x) (nth 1 x) (math-evaluate-expr-rec (nth 2 x)))
	    x)
	(if (eq (car x) 'var)
	    (if (and (calc-var-value (nth 2 x))
		     (not (eq (car-safe (symbol-value (nth 2 x)))
			      'incomplete)))
		(let ((val (symbol-value (nth 2 x))))
		  (if (eq (car-safe val) 'special-const)
		      (if calc-symbolic-mode
			  x
			val)
		    val))
	      x)
	  (if (Math-primp x)
	      x
	    (cons (car x) (mapcar #'math-evaluate-expr-rec (cdr x))))))
    x))