www.delorie.com/gnu/docs/calc/calc_351.html | search |
Buy the book! | |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If the separator symbol is push
, the formula argument is
evaluated (with possible `$' expansions, as usual). The
result is pushed onto the Calc stack. The return value is nil
(unless there is an error from evaluating the formula, in which
case the return value depends on calc-eval-error
in the
usual way).
If the separator symbol is pop
, the first argument to
calc-eval
must be an integer instead of a string. That
many values are popped from the stack and thrown away. A negative
argument deletes the entry at that stack level. The return value
is the number of elements remaining in the stack after popping;
`(calc-eval 0 'pop)' is a good way to measure the size of
the stack.
If the separator symbol is top
, the first argument to
calc-eval
must again be an integer. The value at that
stack level is formatted as a string and returned. Thus
`(calc-eval 1 'top)' returns the top-of-stack value. If the
integer is out of range, nil
is returned.
The separator symbol rawtop
is just like top
except
that the stack entry is returned as a raw Calc object instead of
as a string.
In all of these cases the first argument can be made a list in order to force the default mode settings, as described above. Thus `(calc-eval '(2 calc-number-radix 16) 'top)' returns the second-to-top stack entry, formatted as a string using the default instead of current display modes, except that the radix is hexadecimal instead of decimal.
It is, of course, polite to put the Calc stack back the way you found it when you are done, unless the user of your program is actually expecting it to affect the stack.
Note that you do not actually have to switch into the `*Calculator*'
buffer in order to use calc-eval
; it temporarily switches into
the stack buffer if necessary.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
webmaster | delorie software privacy |
Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |