函數式編程

first class element

一般而言,程序設計語言總會對計算元素的可能使用方式強加上某些限制。帶有最少限制的元素被稱爲具有第一級的狀態。第一級元素具有某些“權利或者特權”包括:

  • 可以用變量命名;
  • 可以提供過程作爲參數;
  • 可以由過程作爲結果返回;
  • 可以包含在數據結構中。

Lazy evaluation

Guava中的Iterables#filter

所謂函數式編程,就是是函數是一等公民。
Ps:個人感覺「第一級」翻譯成「第一等公民」更爲恰當。)

尾遞歸

長期以來,尾遞歸一直被看作一種編譯技巧。尾遞歸的堅實語義基礎有Carl Hewitt(1977)提供,他利用“消息傳遞”模型解釋尾遞歸。

Map&Reduce

有了一個尾遞歸的實現,我們就可以利用常規的過程調用機制表述迭代,這也會使各種複雜的專用迭代結構編程不過是一些語法糖衣了。

參考資料:

發佈了59 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章