Emacs

Lisp Funktionen

Über den eingebauten Lisp Interpreter kann man den Emacs natürlich nicht nur den eigenen Anforderungen anpassen und konfigurieren, sondern natürlich auch beliebig programmieren. Man sagt, dass der Emacs einfach alles kann, unter anderem auch Fußballspielen - ernsthaft.

Einfache Funktionen sind in Lisp schnell geschrieben, also z.B. die rekursive Fakultäts-Funktion:

(defun fac(n) "calculate factorial"
 (if (> n 1)
  (* n (fac (- n 1)))
  1
 )
)

Obigen Code schreiben wir interaktiv im sogenannten Scratch-Buffer und machen ihn mittels nachfolgendem Ctrl-X-e dem Lisp-Interpreter bekannt. Danach kann man die Funktion wie üblich im Taschenrechnermodus benutzen:

(fac 10) Ctrl-X-e → 3628800

Ein weiteres Beispiel; Man stellt sich ja häufiger die Frage, wie alt man ist. Nun, das kann beantwortet werden:

(require 'cal-julian)

(defun age(birthdate) "calculate age measured in days"
 (+ (- (calendar-absolute-from-julian (calendar-current-date))
     (calendar-absolute-from-julian birthdate)) 1)
)

(age '(1 10 1938))

Die interaktiv geschriebenen Funktionen gehen natürlich verloren, wenn man den emacs beendet. Um sie permanent verfügbar zu machen, lagert man selbst geschriebene Emacs-Lisp Funktionen am besten in eine Datei mit der Endung .el aus und importiert diese in der .emacs-Datei mittels (load “file.el”).

Kompilation | | Goodies

Options: