;; This buffer is for text that is not saved, and for Lisp evaluation. ;; To create a file, visit it with C-x C-f and enter text in its buffer. elisp werkt met sexp's sexp = symbolic expression, opdracht gevolgd door argumenten sexp vb (+ 2 2) mexp vb. print(array[2]) form = synoniem expression een expressie is bedoeld om geevalueerd te worden een quote juist niet 'a = (quote a) betekent evalueer dit niet (setq p '(print (current-buffer))) (setq p (list '(print (current-buffer)))) ; is het zelfde als zin erboven => (print #buffer) (eval p) = > #buffer list (list a b) ; creeert een list, tegenovergestelde van cons een elisp programma is eigenlijk een verzameling lists met variabelen, functies en literals bij een sexp worden lists tussen de haakjes steeds uitgewerkt C-x C-e evalueert sexp voor cursor car is eerste element van een list cdr de rest let creert nieuwe lokale variabele (let ((x (current-buffer))) (message "%s" x)) set bepaalt inhoud bestaande variabele (of: global?) setq () is zelfde als set '() ' evalueert sexp niet (interactive) maakt een functie interactief: "M-x"-baar en keybindable (lambda ()) maakt duidelijk dat een functie volgt narrowing = opdracht heeft slechts effect op deel buffer (if () (bla bla) ; then (bla bla) ; else ) indien je meer opdrachten mee wil geven gebruiken dan progn (if () (progn () () ) )