Emacs Lisp

Emacs Lisp (czasami nazywany Elisp) – dialekt języka programowania Lisp wykorzystywany przez edytory tekstu GNU Emacs i XEmacs, używany do pisania programów, które wspomagają pisanie tekstu oraz rozszerzają możliwości edytora Emacs. Większość funkcji edytora Emacs została napisana w Emacs Lisp-ie, oprócz między innymi niskopoziomowych funkcji wyświetlających oraz interpretera i kompilatora Emacs Lisp, które zostały napisane w języku C.

Programy w Emacs Lisp są zapisywane jako pliki tekstowe z rozszerzeniem „.el”, ale istnieje możliwość kompilacji za pomocą wbudowanego kompilatora do kodu bajtowego, dzięki czemu osiąga się wyższą wydajność. Kod bajtowy jest zapisywany w plikach z rozszerzeniem „.elc”. Programy Emacs Lisp-a są zapisywane w bibliotekach i ładowane w razie potrzeby[1], najczęściej są to tzw. tryby Emacsa[2], uruchamiane dla określonych typów plików dodające nowe funkcje, skróty klawiszowe czy kolorowanie składni[3]. W Emacsie naciśnięcie dowolnego klawisza powoduje wywołanie jakiejś funkcji napisanej w Emacs Lispie[4], którą można dowolnie zmieniać. Plik konfiguracyjny Emacsa jest programem napisanym w Emacs Lispie.

Emacs Lisp charakteryzuje się dynamicznym wiązaniem zmiennych. Posiada wbudowany garbage collector. W odróżnieniu od innych dialektów lispa nie optymalizuje wywołań z rekurencją ogonową[5].

Cechy dialektu

[edytuj | edytuj kod]
  • dynamiczne wiązanie zmiennych
  • deklaracje funkcji przez defun jak w Common Lisp
  • dwie przestrzenie nazw (funkcje i zwykłe zmienne) jak w Common Lips

Przykład kodu

[edytuj | edytuj kod]
(defun square (x) (* x x))
(defun call (fn num) (funcall fn num))
(call #'square 10)
;; 100

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]

Linki zewnętrzne

[edytuj | edytuj kod]