There are some possibilities of using Lisp/Maxima :
- Lisp function or whole Lisp unit
- mixed Maxima and Lisp code
- only Maxima code.

Is it possible to give some hints what should one choose ?

Use CL, not Maxima when you need to work with:
* arrays,
* IEEE32 floats,
* IEEE32 complex floats,
* complex number big float arithmetic,
* hash tables,
* OO code,
* (define) a data structure, such as a something similar to a Pascal record,
* faster program ( but "don't assume that compiled CL code will run 10 times faster than compiled Maxima code. It's unlikely that it will.")


Use Maxima when :
* the code will mostly do calculus-like things (expand, factor,solve, integrate, substitute, ...),
* you want more users to understand your code and be able to improve it,
* you want that your code will shorter, and will be easier to write and debug. Also, you'll have fewer problems with confusion over expressions in CRE form or general form.
* error messages will be more understandable,
* your code will be protected from changes to Maxima data structures

Note : the answer is based (with small edit changes, I hope without errors), on Barton Willis posts on newsgroup gmane.comp.mathematics.maxima.general at gmane.org.)
There are 3 methods of using Lisp and Maxima together :

1. Individual Lisp commands may be entered by starting the input line with “:lisp”.

(%i1) :lisp (format t "hello from lisp~%")
hello from lisp
NIL
(%i1) :lisp (setf foo 1)
Warning: Declaring FOO special.

1
(%i1)

Note that :lisp lines to not need to end with semi-colons or dollar signs ( as in Maxima).



2. one can enter Lisp mode with to_lisp():

(%i1) to_lisp();
Type (to-maxima) to restart
MAXIMA> (format t "hello from lisp~%")
hello from lisp
NIL
MAXIMA> (setf foo 1)
;
Warning: Declaring FOO special.
1
MAXIMA> (to-maxima)
Returning to Maxima
(%o1) TRUE
(%i2)


3. Write a package in Lisp,
with instruction at the beginning :
(in-package :maxima)
;set the current package by calling macro IN-PACKAGE. (Note that macro does not evaluate its argument.)
save it to a file ( like complex_dynamics.lisp by Jaime E. Villate)
and use Lisp functions directly in Maxima
(note that Lisp functions and variables which are to be visible in Maxima as functions and variables with ordinary names (no special punctuation) must have Lisp names beginning with the dollar sign $ )

(%i3) load("complex_dynamics.lisp");
(%o3) C:/PROGRA~1/MAXIMA~1.2/share/maxima/5.19.2/share/dynamics/complex_dynamics.lisp
(%i4) mandelbrot([filename,"dynamics8"])$
File dynamics8.xpm was created.

Open file dynamics8.xpm using image viewer ( external program like XnView) or text editor ( to see its structure). On my computer I look for this file in directory :
C:\Program Files\Maxima-5.19.2\wxMaxima



Q. Which Lisp implementation should I use in Maxima ?
A. "In the different lisp implementations, it is possible that a factor of 2 to 10 speedup remains to be obtained." RJF


Q. Maxima on 64 bit ?
A. " I installed maxima on a 64-bit Linux (Suse). I first compiled 64-bit sbcl, and then maxima with it."
"The default memory limit is several GiB" Andrey G. Grozin


trace functions ,e.g. :
:lisp (trace solve1a)

? (sqrt -1)
#C(0 1) ; the result of (sqrt -1)




checking lisp constants :

:lisp most-positive-fixnum
536870911

:lisp most-positive-double-float
1.7976931348623157e308


Naming conventions :
"A Lisp symbol which begins with a dollar sign $ corresponds to a Maxima symbol without the dollar sign.
A Maxima symbol which begins with a question mark ? corresponds to a Lisp symbol without the question mark. For example, the Maxima symbol foo corresponds to the Lisp symbol $foo, while the Maxima symbol ?foo corresponds to the Lisp symbol foo,
Note that ?foo is written without a space between ? and foo; otherwise it might be mistaken for describe ("foo").
Hyphen -, asterisk *, or other special characters in Lisp symbols must be escaped by backslash \ where they appear in Maxima code. For example, the Lisp identifier *foo-bar* is written ?\*foo\-bar\* in Maxima."

For example :


in lisp defun $farey-cauchy function , in maxim use farey\-cauchy


GCL_Installation
Maxima_Installation
MaximaINSTALL


References :
  1. Maxima user interface tips from Maxima doc
  2. 3.1 Lisp and Maxima  in Maxima online doc
  3. Speed after compilation
  4. The Complete Idiot’s Guide to Common Lisp Packages by Erann Gat