Emacs Lisp
Emacs Lisp — диалект языка программирования Lisp, используемый в текстовых редакторах GNU Emacs и XEmacs. Бо́льшая часть Emacs реализована на Emacs Lisp. Иногда также сокращённо называется elisp, хотя может возникнуть путаница со старым диалектом, имеющим такое же название и никак не связанным с Emacs Lisp.
Emacs Lisp отличает мощная библиотека работы с текстовыми файлами, построенная на основе манипуляции такими встроенными примитивами, как буфер (англ. buffer), выделенная область (англ. region), точка (англ. point) и пометка (англ. mark).
В отличие от других современных диалектов Лиспа (Common Lisp, Scheme) в Emacs Lisp присутствует только динамическая область видимости. Это не позволяет использовать такую технику функционального программирования, как замыкания. Расширение cl вносит в Emacs Lisp некоторые особенности Common Lisp, в том числе лексическую область видимости[1].
Пример [править]
Пример макроса на Emacs Lisp:
(defmacro inc (var) `(setq ,var (1+ ,var)))
Примечания [править]
Ссылки [править]
- Программирование на Emacs Lisp (рус.). Архивировано из первоисточника 3 марта 2012. Проверено 20 июля 2011.
- An Introduction to Programming in Emacs Lisp (Third Edition) (англ.). Архивировано из первоисточника 3 марта 2012. Проверено 12 января 2010.
- GNU Emacs Lisp Reference Manual (англ.). Архивировано из первоисточника 3 марта 2012. Проверено 11 октября 2009.
| Это заготовка статьи о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |
| GNU Emacs и производные | GNU Emacs · XEmacs · SXEmacs · Aquamacs | |
|---|---|---|
| Другие реализации Emacs | Climacs · Epsilon · Freemacs · EINE · Gosling Emacs (Mocklisp) · Hemlock · JOVE · mg · MicroEMACS · Multics Emacs · GNU TeXmacs · vile · Zile · Zmacs · ZWEI | |
| Режимы Emacs | AUCTEX · Dired · Dunnet · Emacs Speaks Statistics · Emacspeak · ERC · Gnus · org-mode · Planner · rcirc · RefTeX · SLIME · Emacs/W3 · w3m · wanderlust | |
| Устройство Emacs | Emacs Lisp · Apel · Leim · MULE | |
| Прочее | Conkeror · Dissociated press · Война редакторов | |