GNU Emacs
- 1 year ago
- 0
- 0
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, в том числе лексическую область видимости .
Пример макроса на Emacs Lisp:
(defmacro inc (var)
`(setq ,var (1+ ,var)))