Emacs Lisp

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Emacs Lisp
Изображение логотипа
Семантика Функциональное программирование, Метапрограммирование
Класс языка язык программирования, язык функционального программирования, Лисп, сценарный язык, императивный и динамический язык программирования
Появился в 1985; 39 лет назад (1985)
Автор Ричард Столлман,
Гай Стил
Разработчик Проект GNU
Расширение файлов .el, .elc
Выпуск 28.1 (4 апреля 2022; 2 года назад (2022-04-04))
Система типов Динамическая, сильная
Испытал влияние Common Lisp, MacLisp
Лицензия GNU GPLv3
Сайт gnu.org/software/emacs
Платформа Кроссплатформенный
ОС Кроссплатформенный
Логотип Викисклада Медиафайлы на Викискладе

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)))

Примечания

[править | править код]