MLISP — это вариант Lisp с синтаксисом, подобным Algol , основанным на M-Expressions , которые были синтаксисом функций в оригинальном описании Lisp Джоном Маккарти . М-выражения Маккарти никогда не были реализованы в точной форме. [1]
MLISP был впервые реализован для IBM 360 Хорасом Энеа, а затем повторно реализован для PDP 10 Дэвидом Кэнфилдом Смитом. Эта вторая реализация также поддерживает специальный вид лямбда-выражений (« FEXPR »), которые не оценивают свои аргументы. Как и в Lisp-1 или Scheme , для переменных и функций было единое пространство имен. [2]
В то время как MLISP был всего лишь препроцессором с альтернативным, более удобным для чтения синтаксисом Lisp, потомок MLISP 2 представил новые концепции: [3]
Авторы назвали MLISP2 переходным языком. Ларри Теслер усовершенствовал систему сопоставления с образцом, чтобы реализовать язык-преемник под названием LISP70 , который был доработан лишь до предварительной версии. Хотя этот путь эволюции LISP широко игнорируется, он напоминает некоторые особенности, позже обнаруженные в ML или Scheme. [5]
M-LISP (MetaLISP) Роберта Мюллера — неродственный язык 1989–1992 годов. Это был «гибрид М-выражений LISP и Scheme ». [6] [7]
Было множество реализаций Lisp с инфиксной записью и Lisp-подобных или производных от Lisp языков. Некоторые известные примеры включают в себя: