Part 1: talking to Lisp, basics
Type M-x ielm
to get into the interactive Lisp mode
You should see something like:
*** Welcome to IELM *** Type (describe-mode) for help. ELISP>
To test it out
type a number or some text in quotes, and it should echo that back to you:
ELISP> 23 23 ELISP> "testing" "testing" ELISP>
Setting variables with setq
ELISP> (setq foo 25) 25 ELISP> (+ foo 1) 26 ELISP> foo 25 ELISP> (setq foo (+ foo 1)) 26 ELISP> foo 26 ELISP>
Looping with while
(from scratch)
ELISP> (setq foo 10) 10 ELISP> (while (> foo 0) (insert "testing") (newline) (setq foo (- foo 1))) nil ELISP> testing testing testing testing testing testing testing testing testing testing
Printing with loops within loops with dotimes
ELISP> (dotimes (outer-count 10) (dotimes (inner-count outer-count) (insert "?")) (insert "! ")) nil ELISP> ! ?! ??! ???! ????! ?????! ??????! ???????! ????????! ?????????!
Asking for a response
ELISP> (setq foo (read))
Using defun
ELISP> (defun repeater (num-times print-what) (dotimes (counter num-times) (insert print-what))) repeater ELISP> (repeater 10 "!?") nil ELISP> !?!?!?!?!?!?!?!?!?!?
To run a defun
or other Lisp outside of ielm
, type M-:
to get a Lisp prompt at the bottom of the screen, then type the Lisp you want. Press up-arrow to look for previous commands you typed.
If Emacs reports an error, you’ll see a Backtrace
buffer appear which says Debugger entered
on its top line. Type q
to get rid of that, and try again.
More in Emacs Lisp programming pt. 2.