MLISP es una variante de Lisp con una sintaxis similar a la de Algol basada en expresiones M , que eran la sintaxis de funciones en la descripción original de Lisp por parte de John McCarthy . Las expresiones M de McCarthy nunca se implementaron en una forma exacta. [1]
MLISP fue implementado por primera vez para IBM 360 por Horace Enea y luego reimplementado para PDP 10 por David Canfield Smith. Esta segunda implementación también admitía un tipo especial de lambdas (" FEXPR "), que no evalúan sus argumentos. Al igual que en Lisp-1 o Scheme , había un único espacio de nombres para variables y funciones. [2]
Si bien MLISP era solo un preprocesador con una sintaxis alternativa y más fácil de leer para Lisp, el descendiente MLISP 2 introdujo nuevos conceptos: [3]
Los autores consideraron que MLISP2 era un lenguaje de transición. Larry Tesler mejoró el sistema de comparación de patrones para implementar un lenguaje sucesor llamado LISP70 , que solo se completó hasta una versión preliminar. Aunque esta vía de evolución de LISP se ha descuidado en gran medida, se asemeja a algunas características que luego se encontraron en ML o Scheme. [5]
M-LISP (MetaLISP) de Robert Muller es un lenguaje no relacionado que se creó entre 1989 y 1992. Era "un híbrido de M-expression LISP y Scheme ". [6] [7]
Se han implementado varias versiones de Lisp con notación infija y lenguajes similares o derivados de Lisp. Algunos ejemplos notables incluyen: