當前位置:
首頁 > 最新 > 淺談函數式編程

淺談函數式編程

【本期沙龍】淺談函數式編程

常見的編程範式

探秘函數式編程

綁定:變數值不變

表達式:「語句」都是表達式

高階函數:像「變數」一樣使用函數

集合上的高階函數:函數式編程的利器

閉包:「代碼生成器」

柯里化: 數學化的語言技法

部分施用:減少重複的傳參

其他功能:記憶化、惰性求值、模式匹配

從函數式編程中汲取精華

不必學習新語言

正如前面所說,傳統語言也變得更加函數式起來, Java 8提供了集合上一些高階函數, C++ 11也開始支持Lambda表達式。這些都讓你的代碼變得更加簡潔優雅。

匿名函數代替僅出現一次的函數

在Java 8以及C++ 11以後的版本,此兩門語言開始支持Lambda表達式,從而提供了匿名函數特性。在使用需要提供函數指針作為輔助參數的函數,不再需要另行聲明。

使用Lambda表達式減少命名空間污染

為了使演算法清晰明確,有時解決某個問題的演算法可能需要多個函數,但提供最終結果的函數僅僅有其中一個。我們可以通過Lambda表達式將輔助函數綁定到函數內部的函數指針上,從而使輔助函數不再對外暴露。

高階函數代替重複部分

即使是C語言中,也可以使用函數指針來模擬高階函數的運作,C標準庫中利用了高階函數實現了很多函數。

減少代碼中不必要的可變數

代碼中的可變數是影響多線程程序效率的一大重要因素,如果儘可能的減少這部分的內容,既使代碼更加清晰,也使代碼除錯更容易,同時減少了線程間訪問共享數據時用在加鎖解鎖上的時間。

處理高並發: Akka & Actor

Akka是一個用Scala編寫的庫,用於簡化編寫容錯的、高可伸縮性的Java和Scala的Actor模型應用。

2017年10月15日 19:00

西安郵電大學 東區

教學樓東北 FZ118


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 西郵Linux興趣小組 的精彩文章:

TAG:西郵Linux興趣小組 |