Function: calc-let
calc-let is an autoloaded, interactive and byte-compiled function
defined in calc-store.el.gz.
Signature
(calc-let &optional VAR)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-store.el.gz
(defun calc-let (&optional var)
(interactive)
(calc-wrapper
(let* ((calc-given-value nil)
(calc-given-value-flag 1)
thing value)
(or var (setq var (calc-read-var-name "Let variable: ")))
(if calc-given-value
(setq value calc-given-value
thing (calc-top 1))
(setq value (calc-top 1)
thing (calc-top 2)))
(setq var (if var
(list (cons var value))
(calc-is-assignments value)))
(if var
(calc-pop-push-record
(1+ calc-given-value-flag)
(concat "=" (calc-var-name (car (car var))))
(let ((saved-val (mapcar (lambda (v)
(and (boundp (car v))
(symbol-value (car v))))
var)))
(unwind-protect
(let ((vv var))
(while vv
(set (car (car vv)) (calc-normalize (cdr (car vv))))
(calc-refresh-evaltos (car (car vv)))
(setq vv (cdr vv)))
(math-evaluate-expr thing))
(while saved-val
(if (car saved-val)
(set (car (car var)) (car saved-val))
(makunbound (car (car var))))
(setq saved-val (cdr saved-val)
var (cdr var)))
(calc-handle-whys))))))))