This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. (April 2020) |
MLISP is a variant of Lisp with an Algol-like syntax based on M-Expressions, which were the function syntax in the original description of Lisp by John McCarthy. McCarthy's M-expressions were never implemented in an exact form.[1]
MLISP was first implemented for the IBM 360 by Horace Enea and then reimplemented for the PDP 10 by David Canfield Smith. This second implementation also supported a special kind of lambdas ("FEXPR"), which do not evaluate their arguments. As in Lisp-1 or Scheme, there was a single namespace for variables and functions.[2]
While MLISP was just a preprocessor with an alternative, more reader-friendly syntax for Lisp, the descendant MLISP 2 introduced new concepts:[3]
MLISP2 was called a transitional language by the authors. Larry Tesler improved the pattern matching system to implement a successor language called LISP70, which was only completed to a preliminary version. Though this path of LISP evolution is widely neglected, it resembles some features, later found in ML or Scheme.[5]
M-LISP (MetaLISP) by Robert Muller is an unrelated language from 1989–1992. It was "a hybrid of M-expression LISP and Scheme".[6][7]
There have been multiple implementations of infix-notation Lisps and Lisp-like or Lisp-derived languages. Some notable examples include: