NPLNew Programming Language:新编程语言),是具有模式匹配集合推导式的简单的纯函数式编程语言[1],在1973年至1975年,由爱丁堡大学Rod Burstall英语Rod BurstallJohn Darlington英语John Darlington,在关于程序变换英语Program transformation的工作中设计[2],并于1977年用POP-2实现[3]

事实速览 编程范型, 設計者 ...
NPL
编程范型纯函数式
設計者Rod Burstall英语Rod Burstall, John Darlington英语John Darlington
发行时间1977年,​47年前​(1977
啟發語言
ISWIM, Lisp 1.5
影響語言
Hope
关闭

特征

Rod Burstall在关于结构归纳法的一篇重要的早期论文中[4],向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但丢弃了集合推导式,它以列表推导式的形式重现出来在后来的函数式编程语言中。

引用

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.