Differences between version 12 and predecessor to the previous major change of LISP.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 12 | Last edited on Sunday, October 26, 2003 7:18:05 am | by AristotlePagaltzis | Revert |
Older page: | version 1 | Last edited on Monday, November 18, 2002 3:15:14 pm | by JohnMcPherson | Revert |
@@ -1,43 +1,19 @@
-__LIS
__t __P__rocessing.
+The name is an [Acronym] for
__Lis
__t __P__rocessing and denotes a family of [ProgrammingLanguage]s
.
-a ' makes something a quote (ie a string). So:
- '(elem1 elem2 elem3)
-is a list.
+QuickLispTutorial
-setq makes something a global variable. (?
- what's the difference between setq and let someone?)
- (setq mylist '(a b c))
+!!Dialects
+; [CommonLisp] : standardised, heavy
-duty Lisp.
+; [Scheme] : elegant intellectual Lisp.
+; [Elisp] : the scripting language for [Emacs]
-car returns the first element of a list
:
- (print
(car mylist
))
- a
+!!Interesting Links
+* [Online LISP tutorial | http
://apsymac33.uni-trier.de:8080/Lisp-Course]
+* [Recursive Functions of Symbolic Expressions and Their Computation by Machine
(Part I
) | http://www-formal.stanford.edu/jmc/recursive.html], the original paper discussing [LISP].
-cdr returns
the rest of
the list (ie all-but-first):
- (print (cdr mylist))
- (b c)
+The secret to reading [LISP] is to look at
the indenting. You will go mad if you count
the brackets.
-And that
is basically
LISP ;)
+The secret to writing [LISP]
is to always use an editor that autoindents [
LISP] code and highlights matching brackets for you. [Emacs] does this.
-emacs is completely scriptable in LISP
- look in /usr/share/emacs/site
-lisp/*.el for the start
-up and config files.
-
-Here is an emacs lisp example from po
-mode.el. It only has a maximum of 8 closing brackets in a row, but I didn't look very hard.
-
- ;; Handle missing `with
-temp-buffer' function.
- (eval-and-compile
- (if nil ; FIXME: just testing... (fboundp 'with-temp-buffer)
-
- (fset 'po-with-temp-buffer (symbol-function 'with-temp-buffer))
-
- (defmacro po-with-temp-buffer (&rest forms)
- "Create a temporary buffer
, and evaluate FORMS there like `progn'."
- (let ((curr-buffer (make-symbol "curr-buffer"))
- (temp-buffer (make-symbol "temp-buffer")))
- `(let ((,curr-buffer (current-buffer))
- (,temp-buffer (get-buffer-create
- (generate-new-buffer-name " *po-temp*"))))
- (unwind-protect
- (progn
- (set-buffer ,temp-buffer)
- ,@forms)
- (set-buffer ,curr-buffer)
- (and (buffer-name ,temp-buffer)
- (kill-buffer ,temp-buffer))))))))
+-----
+CategoryProgrammingLanguages
, CategoryFunctionalProgrammingLanguages