На этот вопрос сложно ответить, так как кто-то должен был бы знать все языки, чтобы знать, что ни у кого другого нет особой функции, доступной в Лиспе, поэтому следующее основано на языках, с которыми я имею опыт работы.
Сверх того, условия - это то, чего я не видел ни на одном другом языке. Подумайте об «исключениях», но в тех случаях, когда стек вызовов не разматывается, и когда вызывающая сторона может отправлять значение восстановления на сайт исключений, но не нарушая стек вызовов между обработчиком и источником исключения. Если честно, это на самом деле просто специальное применение продолжений, поэтому Ruby и Scheme (по крайней мере) могут это сделать.
Макросистема Лиспа извлекает выгоду из регулярности / гомоиконичности, но Scala планирует включить их в качестве стабильной функции в 2.12, и Template Haskell претендует на аналогичные функции. Я бы сказал, что они будут более сложными по синтаксису, чем с Lisp, но генерация кода во время компиляции существует независимо.
Если задуматься, то прямое построение форм - это всего лишь один вид макросов, доступных в Лиспе: я не видел ни одного эквивалента макросов компилятора или читателя где-либо еще.
Способность некоторых диалектов (например, SBCL ) сохранять законченный, восстанавливаемый образ процесса - это круто, но, опять же, это не уникально: Smalltalk делал это десятилетиями.
Многие другие языки допускают деструктуризацию присваивания при возврате массивов, но подход # 'values и #' множественные-значения-привязки / let-values по-прежнему специфичен для Common Lisp и Scheme (которые все еще могут выполнять «обычную» деструктуризацию). ). 'Wantarray' в Perl позволяет функции определять, вызывается ли она в скалярном, списочном или пустом контексте, поэтому она может корректировать свое возвращаемое значение аналогичным (-ish) способом, но я не видел "истинных" множественных возвращаемых значений вне Схемы / кл.
Что касается языковых возможностей, то, вероятно, Лисп не так много может сделать, чего не могут другие языки (полнота Тьюринга - это то, чем он является). Что это , однако, является языком , где код выражается в терминах своих собственных структур данных, что делает большую идею ™ -Вот коды данных то , что относительно легко работать.