Emacs Lisp - Language Features

Language Features

Notably, the "cl" package implements a fairly large subset of Common Lisp.

Emacs Lisp uses dynamic scope, offering static (or lexical) as an option starting from version 24. It can be activated by setting the file local variable lexical-binding.

In dynamic scoping, if a programmer declares a variable within the scope of a function, it is available to subroutines called from within that function. Originally, this was intended as an optimization; lexical scoping was still uncommon and of uncertain performance. Dynamic scoping was also meant to provide greater flexibility for user customizations. However, dynamic scoping has several disadvantages. Firstly, it can easily lead to bugs in large programs, due to unintended interactions between variables in different functions. Secondly, accessing variables under dynamic scoping is generally slower than under lexical scoping.

Also, the lexical-let macro in the "cl" package does provide effective lexical scope to Emacs Lisp programmers, but while `cl' is widely used, lexical-let is rarely used. Variables bound with lexical-let are never released, even if they are never used.

Emacs Lisp (unlike some other Lisp implementations) does not do tail-call optimization. Without this, tail recursions can eventually lead to stack overflow.

The apel library aids in writing portable Emacs Lisp code, with the help of the polysylabi platform bridge.

Read more about this topic:  Emacs Lisp

Famous quotes containing the words language and/or features:

    These are our grievances which we have thus laid before his majesty with that freedom of language and sentiment which becomes a free people, claiming their rights as derived from the laws of nature, and not as the gift of their chief magistrate.
    Thomas Jefferson (1743–1826)

    “It looks as if
    Some pallid thing had squashed its features flat
    And its eyes shut with overeagerness
    To see what people found so interesting
    In one another, and had gone to sleep
    Of its own stupid lack of understanding,
    Or broken its white neck of mushroom stuff
    Short off, and died against the windowpane.”
    Robert Frost (1874–1963)