NPL(New Programming Language:新編程語言),是具有模式匹配和集合推導式的簡單的純函數式編程語言[1],在1973年至1975年,由愛丁堡大學的Rod Burstall和John Darlington,在關於程序變換的工作中設計[2],並於1977年用POP-2實現[3]。
特徵
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.