近年來函數式編程(Functional Programming,FP)開始獲得越來越多的關注,繼面向對象編程之後,函數式編程或許會成為下一個編程的主流范式(Programming Paradigm)。
函數式編程具有代碼簡潔、開發速度快、更接近自然語言和易於並發編程等優點。目前越來越多的語言開始或增強對函數式編程的支持,如Python、Ruby、Javascript等。
在維基百科中對函數式編程的定義是:
In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
C++語言並不鼓勵函數式程序設計,但它也不妨礙你這麼做,而且為你保留了深入下層、運用SIMD內在函數基於內存映射文件直接布局數據的能力,或任何其他你發現自己用得著的精華特性。
目前C++函數式編程的資料很少,FC++是最好的基於C++的函數式編程庫開放源碼實現,可以把它插入遺留的C++代碼中。BSFC++等項目中已經使用了FC++,BSFC++是一個用C++進行函數大規模同步並行編程的庫。可以從SourceForge下載 FC++:http://sourceforge.net/projects/fcpp/
學習資料:
1. 卡馬克:用C++進行函數式編程
2. 學習FC++:C++函數編程庫
3. Functional-Style Programming in C++