The s d (
calc-declare-variable) command is the easiest
way to make a declaration for a variable. This command prompts for
the variable name, then prompts for the declaration. The default
at the declaration prompt is the previous declaration, if any.
You can edit this declaration, or press C-k to erase it and
type a new declaration. (Or, erase it and press <RET> to clear
the declaration, effectively “undeclaring” the variable.)
A declaration is in general a vector of type symbols and
range values. If there is only one type symbol or range value,
you can write it directly rather than enclosing it in a vector.
For example, s d foo <RET> real <RET> declares
be a real number, and s d bar <RET> [int, const, [1..6]] <RET>
bar to be a constant integer between 1 and 6.
(Actually, you can omit the outermost brackets and Calc will
provide them for you: s d bar <RET> int, const, [1..6] <RET>.)
Declarations in Calc are kept in a special variable called
This variable encodes the set of all outstanding declarations in
the form of a matrix. Each row has two elements: A variable or
vector of variables declared by that row, and the declaration
specifier as described above. You can use the s D command to
edit this variable if you wish to see all the declarations at once.
See Operations on Variables, for a description of this command
and the s p command that allows you to save your declarations
permanently if you wish.
Items being declared can also be function calls. The arguments in
the call are ignored; the effect is to say that this function returns
values of the declared type for any valid arguments. The s d
command declares only variables, so if you wish to make a function
declaration you will have to edit the
Decls matrix yourself.
For example, the declaration matrix
[ [ foo, real ] [ [j, k, n], int ] [ f(1,2,3), [0 .. inf) ] ]
foo represents a real number,
n represent integers, and the function
returns a real number in the interval shown.
If there is a declaration for the variable
All, then that
declaration applies to all variables that are not otherwise declared.
It does not apply to function names. For example, using the row
‘[All, real]’ says that all your variables are real unless they
are explicitly declared without
real in some other row.
The s d command declares
All if you give a blank
response to the variable-name prompt.