strikes me as a detailed description of a very particular implementation that you specifically like. considering lisp is a family of languages - which of these rules do you accept deviations from and by how much?
Hardly at all; even the 1960 Lisp 1 manual ran for some 160 pages; this is just a few bullet points. It leaves a lot of room for family inclusion.
But not every Tom, Dick or Harry that walks in off the street is your family member, or even a friend.
> very particular implementation
Nope; just the original thing and many of its derivatives that can legitimately be called some kind of Lisp.
"Lisp" is in fact the name for a particular set of implementation features.
You may have a very nice implementation of some sort of list processing with all the equivalent expressivity and power, or whatever measure of pedigree we choose; it's just not Lisp: pick another word.
> which of these rules do you accept deviations from and by how much?
None. These are the things someone shouldn't mess with, if they want people to refer to their programming language as a Lisp dialect.
And, in fact, at least if we look at major works in the mainstream, most of those who do change those things understand this and don't use that term in naming their language. So, a fairly good approximation to the predicate "is not Lisp" is "does not have 'Lisp' in its name".
Also false. The requirements could be implemented by something I strongly dislike. For instance, someone's crappy one-weekend Lisp dialect, hopelessly unsuitable for real work, in which an error stops the entire process without leaving a clue where it occurred. I will certainly prefer a quality Lisp-resembling language to such a thing.
Hardly at all; even the 1960 Lisp 1 manual ran for some 160 pages; this is just a few bullet points. It leaves a lot of room for family inclusion.
But not every Tom, Dick or Harry that walks in off the street is your family member, or even a friend.
> very particular implementation
Nope; just the original thing and many of its derivatives that can legitimately be called some kind of Lisp.
"Lisp" is in fact the name for a particular set of implementation features.
You may have a very nice implementation of some sort of list processing with all the equivalent expressivity and power, or whatever measure of pedigree we choose; it's just not Lisp: pick another word.
> which of these rules do you accept deviations from and by how much?
None. These are the things someone shouldn't mess with, if they want people to refer to their programming language as a Lisp dialect.
And, in fact, at least if we look at major works in the mainstream, most of those who do change those things understand this and don't use that term in naming their language. So, a fairly good approximation to the predicate "is not Lisp" is "does not have 'Lisp' in its name".