NPL语言

NPL（New Programming Language：新编程语言），是具有模式匹配和集合推导式的简单的纯函数式编程语言，在1973年至1975年，由爱丁堡大学的和，在关于的工作中设计，并于1977年用POP-2实现。

特征
Rod Burstall在关于结构归纳法的一篇重要的早期论文中，向ISWIM扩展了仍用词语来定义的代数类型定义，和用来分析数据结构的case表达式。John Darlington的NPL，将case表达式替代为在代数类型包括自然数上的多等式函数定义，例如：
fib (0) <= 1
fib (1) <= 1
fib (n+2) <= fib (n+1) + fib (n)
John Darlington的想法来自Kleene的递归方程。

NPL语言允许特定集合和逻辑构造符出现在定义的右手侧，比如：
setofeven(X) <= <:x: x in X & even(x) :>
NPL解释器从左至右对这个列表生成器进行求值，所以条件可以提及任何出现在其左侧的约束（bound）变量。这叫做集合推导式。NPL最终演化为Hope但丢弃了集合推导式，它以列表推导式的形式重现出来在后来的函数式编程语言中。

引用

学术的编程语言
模式匹配编程语言
函数式编程语言