The `d C` (`calc-c-language`

) command selects the conventions
of the C language for display and entry of formulas. This differs from
the normal language mode in a variety of (mostly minor) ways. In
particular, C language operators and operator precedences are used in
place of Calc's usual ones. For example, ``a^b'` means ``xor(a,b)'`
in C mode; a value raised to a power is written as a function call,
``pow(a,b)'`.

In C mode, vectors and matrices use curly braces instead of brackets.
Octal and hexadecimal values are written with leading ``0'` or ``0x'`
rather than using the ``#'` symbol. Array subscripting is
translated into `subscr`

calls, so that ``a[i]'` in C
mode is the same as ``a_i'` in normal mode. Assignments
turn into the `assign`

function, which Calc normally displays
using the ``:='` symbol.

The variables `var-pi`

and `var-e`

would be displayed ``pi'`
and ``e'` in normal mode, but in C mode they are displayed as
``M_PI'` and ``M_E'`, corresponding to the names of constants
typically provided in the ``<math.h>'` header. Functions whose
names are different in C are translated automatically for entry and
display purposes. For example, entering ``asin(x)'` will push the
formula ``arcsin(x)'` onto the stack; this formula will be displayed
as ``asin(x)'` as long as C mode is in effect.

The `d P` (`calc-pascal-language`

) command selects Pascal
conventions. Like C mode, Pascal mode interprets array brackets and uses
a different table of operators. Hexadecimal numbers are entered and
displayed with a preceding dollar sign. (Thus the regular meaning of
`$2` during algebraic entry does not work in Pascal mode, though
`$` (and `$$`, etc.) not followed by digits works the same as
always.) No special provisions are made for other non-decimal numbers,
vectors, and so on, since there is no universally accepted standard way
of handling these in Pascal.

The `d F` (`calc-fortran-language`

) command selects FORTRAN
conventions. Various function names are transformed into FORTRAN
equivalents. Vectors are written as ``/1, 2, 3/'`, and may be
entered this way or using square brackets. Since FORTRAN uses round
parentheses for both function calls and array subscripts, Calc displays
both in the same way; ``a(i)'` is interpreted as a function call
upon reading, and subscripts must be entered as ``subscr(a, i)'`.
Also, if the variable `a`

has been declared to have type
`vector`

or `matrix`

then ``a(i)'` will be parsed as a
subscript. (See section Declarations.) Usually it doesn't matter, though;
if you enter the subscript expression ``a(i)'` and Calc interprets
it as a function call, you'll never know the difference unless you
switch to another language mode or replace `a`

with an actual
vector (or unless `a`

happens to be the name of a built-in
function!).

Underscores are allowed in variable and function names in all of these
language modes. The underscore here is equivalent to the ``#'` in
normal mode, or to hyphens in the underlying Emacs Lisp variable names.

FORTRAN and Pascal modes normally do not adjust the case of letters in
formulas. Most built-in Calc names use lower-case letters. If you use a
positive numeric prefix argument with `d P` or `d F`, these
modes will use upper-case letters exclusively for display, and will
convert to lower-case on input. With a negative prefix, these modes
convert to lower-case for display and input.

Go to the first, previous, next, last section, table of contents.