函數語言程式設計functional programming的特點
以Erlang為代表的面向功能語言functional programming(FP)越來越熱門,雖然本身有比較難學等缺點,
Where functional programming fits in一文總結總結了FP適合哪些場合?
Java平臺的Scala,.NET的F都是FP語言,而Ruby因為包含一些FP特點受到歡迎。
FP特點:
1.FP程式碼沒有邊界影響“side effects.”(目的明確,是一就是一,不會因為搗蛋鬼呼叫導致其他功能實現)
2.沒有literal值, 簡單的功能只是返回相同值。
3.許多FP語言有“lazy evaluation,”(類似懶載入機制),功能並不真正執行,直到他們被呼叫,比如你定義x = y +5,只有當x被使用時,才真正計算y+5,這個帶來更好的效能boon和curse (有時不確定值),(注:這個和我們之前討論的非同步Domain Events好像類似,模型的值只有即時使用才訪問資料庫獲得,我們也是為了獲得更好地效能,見Domain Events非同步應用)
FP語言的這些特性代表了思想的根本轉變,但是使用FP語言,必須考慮是不是存在過度工程或overthinking的問題,因為這程式碼的其他維護者需要學習一個新的語言。
作者認為FP語言使用在演算法應用領域比較好,在Xbox Live排名系統中,用F替代C重寫,只用了10% 的程式碼量,節約了近90%的程式碼。
如果你使用現代主流的膠水庫library glue code之類應用,如果你的程式碼是由一個個類組成的結構,而演算法只是被融合在這些類之中,就沒有必要使用FP語言。
[該貼被admin於2009-12-09 14:24修改過]
相關文章
- Java中的函數語言程式設計(二)函式式介面Functional InterfaceJava函數程式設計函式Function
- 函數語言程式設計函數程式設計
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- RAC的函數語言程式設計函數程式設計
- JavaScript 函數語言程式設計JavaScript函數程式設計
- Java 函數語言程式設計Java函數程式設計
- python函數語言程式設計Python函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- 函數語言程式設計,真香函數程式設計
- JavaScript中的函數語言程式設計JavaScript函數程式設計
- C++的函數語言程式設計C++函數程式設計
- 函數語言程式設計前菜函數程式設計
- 函數語言程式設計雜談函數程式設計
- 初見函數語言程式設計函數程式設計
- python函數語言程式設計一Python函數程式設計
- python函數語言程式設計二Python函數程式設計
- JavaScript 函數語言程式設計(二)JavaScript函數程式設計
- JavaScript 函數語言程式設計(一)JavaScript函數程式設計
- JavaScript 函數語言程式設計(三)JavaScript函數程式設計
- .NET併發程式設計-函數語言程式設計程式設計函數
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- Python函數語言程式設計術語大全Python函數程式設計
- DDD的函數語言程式設計實現函數程式設計
- Java 函數語言程式設計的前生今世Java函數程式設計
- Js中函數語言程式設計的理解JS函數程式設計
- Java8的函數語言程式設計Java函數程式設計
- 我對函數語言程式設計的理解函數程式設計
- 函數語言程式設計下的Iterator模式函數程式設計模式
- 函數語言程式設計的幾個概念函數程式設計
- 函數語言程式設計:Lambda 表示式函數程式設計
- python是函數語言程式設計嗎Python函數程式設計
- 深入理解函數語言程式設計函數程式設計
- python函數語言程式設計詳解Python函數程式設計
- [譯] JavaScript 函數語言程式設計指引JavaScript函數程式設計
- 如何提高函數語言程式設計技巧函數程式設計
- 從函數語言程式設計說起函數程式設計
- 『翻譯』JavaScript 函數語言程式設計JavaScript函數程式設計
- 函數語言程式設計最佳實踐函數程式設計
- 資料流&函數語言程式設計函數程式設計