Some people have run into a problem that gcl throws a stack overflow error after too many function invocations. The stack size can be increased by typing
(setq si::*multiply-stacks* 4)which increases the stack size by a factor of 4. If this is not sufficient, you can use a larger increase factor than 4. If this doesn't solve your problem, you may have infinite recursion in one of your functions.
+, -, *, /, =, <=, >=, abs, and, append, atom, bye, car, cdr, caar, cadr, cdar... etc., cond, cons, defun, dribble, equal, exp, first, second, third, fourth, fifth... etc., last, length, let, list, listp, load, max, member, min, nil, not, nth, null, numberp, or, remove, reverse, time.
gcl
(for GNU Common LISP). For gcl to work you have to add:
setenv PATH /u/cs/class/cs161/cbin:$PATH
to your path (one way is to place the line in your .login file). If
you wish to run scheme just type scheme.
M-x shell This will create a unix shell. In
the unix shell start GCL. Everything will remain in the emacs buffer
which can be saved like any other document (CONTROL-x CONTROL-s).
An even easier way has been suggested to me by a very
astute member of the class. From the UNIX prompt type
script. Then start GCL and run your program as you
normally would. When you finish exit GCL, and then from the UNIX
prompt type exit (or press CONTROL-d). The
transcript should be in a text file called typescript.
(bye) or press CONTROL-d.
mail cs161ta@seas.ucla.edu < filename
(cond
(pred) (body)
: :
(pred) ( (do this) & then (do that) )
)
You do it as follows.
(cond
((pred) (body))
: :
('t (body1) (body2) (body3) .... )
)