Emacs Lisp — диалект языка программирования Lisp, используемый в текстовых редакторах GNU Emacs и XEmacs. Бо́льшая часть Emacs реализована на Emacs Lisp. Иногда также сокращённо называется elisp, хотя может возникнуть путаница со старым диалектом, имеющим такое же название и никак не связанным с Emacs Lisp.
| Emacs Lisp | |
|---|---|
| | |
| Семантика | Функциональное программирование, Метапрограммирование |
| Класс языка | язык программирования, язык функционального программирования, Лисп, сценарный язык, императивный язык программирования и динамический язык программирования |
| Появился в | 1985; 37 лет назад (1985) |
| Автор |
Ричард Столлман, Гай Стил |
| Разработчик | Проект GNU |
| Расширение файлов |
.el, .elc |
| Выпуск | 28.1 (4 апреля 2022; 5 месяцев назад (2022-04-04)) |
| Система типов | Динамическая, сильная |
| Испытал влияние | Common Lisp, MacLisp |
| Лицензия | GNU GPLv3 |
| Сайт | gnu.org/software/emacs |
| Платформа | Кроссплатформенный |
| ОС | Кроссплатформенный |
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)))
Это «статья-заготовка» о компьютерных языках. Вы можете помочь проекту, дополнив эту статью, как и любую другую в Википедии. Нажмите и узнайте подробности. |
| Характеристики |
| ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Реализации |
| ||||||||||||||
| Аппаратное обеспечение |
| ||||||||||||||
| Сообщество |
| ||||||||||||||
| |||||||||||||||
| Реализации |
| |||||
|---|---|---|---|---|---|---|
| Режимы |
| |||||
| Устройство |
| |||||
| Другое |
| |||||