Die Frage ist schwierig zu beantworten, da jemand alle Sprachen beherrschen muss, um zu wissen, dass in Lisp keine andere Sprache über eine bestimmte Funktion verfügt. Daher basiert das Folgende auf den Sprachen, mit denen ich Erfahrung habe.
Aus der Spitze von meinem Kopf, Bedingungen sind etwas , dass ich nicht in einer anderen Sprache , gesehen habe. Denken Sie an "Ausnahmen", bei denen der Aufrufstapel nicht abgewickelt wird und bei denen der Aufrufer einen Wiederherstellungswert an die Ausnahmesite senden kann, ohne den Aufrufstapel zwischen dem Handler und der Quelle der Ausnahme zu stören. Um fair zu sein, das ist wirklich nur eine spezielle Anwendung von Fortsetzungen, so Ruby und Scheme (mindestens) kann dies tun.
Lisps Makrosystem profitiert von Regelmäßigkeit / Homoikonizität, aber Scala plant, sie als stabiles Feature in 2.12 aufzunehmen, und Template Haskell behauptet, ähnliche Features zu haben. Ich würde argumentieren, dass sie syntaktisch komplexer sind als mit Lisp, aber die Generierung von Code während der Kompilierung ist trotzdem vorhanden.
Wenn Sie sich das vorstellen, ist das direkte Bauen von Formularen in Lisp nur eine Art von Makro: Ich habe nirgendwo anders ein Äquivalent von Compiler- oder Reader-Makros gesehen.
Die Fähigkeit einiger Dialekte (z. B. SBCL ), ein vollständiges, wiederaufnahmefähiges Prozessabbild zu speichern, ist cool, aber auch dies ist kein Einzelfall: Smalltalk tut dies seit Jahrzehnten.
In vielen anderen Sprachen ist die Zuweisung von Destrukturierungen bei der Rückgabe von Arrays möglich, aber der Ansatz # 'values und #' multiple-value-bind / let-values scheint immer noch spezifisch für Common Lisp und Scheme zu sein (die auch noch 'reguläre' Destrukturierungen durchführen können ). Perls 'wantarray' ermöglicht es einer Funktion, zu bestimmen, ob sie in einem skalaren, Listen- oder ungültigen Kontext aufgerufen wird, damit ihr Rückgabewert auf ähnliche (-ish) Weise angepasst werden kann, aber ich habe nicht gesehen, dass mehrere Rückgabewerte "wahr" sind of Scheme / CL.
In Bezug auf den Sprachfunktionen, gibt es wahrscheinlich nicht viel , dass Lisp kann tun , dass andere Sprachen nicht (Turing Vollständigkeit zu sein , was es ist). Was es ist , jedoch ist eine Sprache , wo der Code in Bezug auf seine eigenen Datenstrukturen zum Ausdruck kommt, so dass der Big Idea ™ -Das Code Daten etwas , das mit zur Arbeit relativ einfach ist.