NPLNew Programming Language:新編程語言),是具有模式匹配集合推導式的簡單的純函數式編程語言[1],在1973年至1975年,由愛丁堡大學Rod Burstall英語Rod BurstallJohn Darlington英語John Darlington,在關於程序變換英語Program transformation的工作中設計[2],並於1977年用POP-2實現[3]

Quick Facts 編程範型, 設計者 ...
NPL
編程範型純函數式
設計者Rod Burstall英語Rod Burstall, John Darlington英語John Darlington
面市時間1977年,​47年前​(1977
啟發語言
ISWIM, Lisp 1.5
影響語言
Hope
Close

特徵

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.