[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Tue, 26 Apr 2016 19:20:15 +0900
I am working on a personal project in/on emacs lisp and I have a terminology
question for which I could not find a definitive answer in the elisp reference
or in Chassell's introduction.
I cannot find a clear definition of "form", "expression", "symbolic
expression", "sexp" and whether the terms are equivalent or not.
According to the Elisp Reference, 1.3.3 a "form" is an expression that you can
evaluate. Are there expressions that one cannot evaluate ? The first occurence
of "expression" is in the above sentence.
Then there is an explanation in 2.1: "In Lisp, an expression is primarily a
Lisp object and only secondarily the text that is the object's read syntax."
So, are there lisp objects that cannot be evaluated ?
There is no reference to "symbolic expression" in the Elisp Reference.
In chapter 9.1 there is "A Lisp object that is intended for evaluation is
called a form or expression." It is not clear what a Lisp obect not intended
for evaluation is. The footnote  says "It is sometimes also referred to as
an S-expression or sexp, but we generally do not use this terminology in this
manual." still, sexp is found in 98 occurrences in the manual mostly in
function names and also in error messages.
The second occurence of the term s-expression is in the index and points at
that 9.1 section footnote. The index lists that 9.1 section as the place to
find info on "expression" "form" "s-expression" and "sexp"...
In Chassell's Introduction on page 2 paragraph 4, it says that atoms and lists
are called symbolic expressions, or more concisely s-expressions, the word
expression can either refer to the printed representation or to the object held
internally in the computer, the term expression is often used indiscriminately
and form is used as a synonym.
In the end it is not clear whether the terms are equivalent or not.
- Terminology question,
Jean-Christophe Helary <=