NPL programming language
Encyclopedia
NPL was a functional language with pattern matching
designed by Rod Burstall
and John Darlington in 1977. The language allowed certain sets and logic constructs to appear on the right hand side of definitions, E.g.
setofeven(X) <= <:x: x in X & even(x) :>
The NPL interpreter evaluates the list of generators from left to right so conditions can mention any bound variables that occur to their left. These were known as set comprehensions. NPL eventually evolved into Hope
but lost set comprehensions which were called list comprehensions in later functional languages.
Reference: John Darlington, "Program Transformation and Synthesis: Present Capabilities", Research Report No. 77/43, Dept. of Computing and Control, Imperial College of Science and Technology, London September 1977.
Pattern matching
In computer science, pattern matching is the act of checking some sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact. The patterns generally have the form of either sequences or tree structures...
designed by Rod Burstall
Rod Burstall
Rodney Martineau Burstall is one of four founders of the Edinburgh Laboratory for Foundations of Computer Science.He was an early and influential proponent of functional programming, pattern matching, and list comprehension, and is known for his work with Robin Popplestone on POP, an innovative...
and John Darlington in 1977. The language allowed certain sets and logic constructs to appear on the right hand side of definitions, E.g.
setofeven(X) <= <:x: x in X & even(x) :>
The NPL interpreter evaluates the list of generators from left to right so conditions can mention any bound variables that occur to their left. These were known as set comprehensions. NPL eventually evolved into Hope
Hope programming language
Hope is a small functional programming language developed in the 1970s at Edinburgh University. It predates Miranda and Haskell and is contemporaneous with ML . It is notable for being the first language with call-by-pattern evaluation and algebraic data types...
but lost set comprehensions which were called list comprehensions in later functional languages.
Reference: John Darlington, "Program Transformation and Synthesis: Present Capabilities", Research Report No. 77/43, Dept. of Computing and Control, Imperial College of Science and Technology, London September 1977.