Previous: Algebraic Definitions, Up: Programming [Contents][Index]

### 17.5 Programming with Lisp

The Calculator can be programmed quite extensively in Lisp. All you do is write a normal Lisp function definition, but with `defmath` in place of `defun`. This has the same form as `defun`, but it automagically replaces calls to standard Lisp functions like `+` and `zerop` with calls to the corresponding functions in Calc’s own library. Thus you can write natural-looking Lisp code which operates on all of the standard Calculator data types. You can then use `Z D` if you wish to bind your new command to a `z`-prefix key sequence. The `Z E` command will not edit a Lisp-based definition.

Emacs Lisp is described in the GNU Emacs Lisp Reference Manual. This section assumes a familiarity with Lisp programming concepts; if you do not know Lisp, you may find keyboard macros or rewrite rules to be an easier way to program the Calculator.

This section first discusses ways to write commands, functions, or small programs to be executed inside of Calc. Then it discusses how your own separate programs are able to call Calc from the outside. Finally, there is a list of internal Calc functions and data structures for the true Lisp enthusiast.

Previous: Algebraic Definitions, Up: Programming [Contents][Index]