近年來函數式編程(Functional Programming,FP)開始得到愈來愈多的關注,繼面向對象編程以後,函數式編程或許會成爲下一個編程的主流範式(Programming Paradigm)。
函數式編程具備代碼簡潔、開發速度快、更接近天然語言和易於併發編程等優勢。目前愈來愈多的語言開始或加強對函數式編程的支持,如Python、Ruby、Javascript等。c++
在維基百科中對函數式編程的定義是:
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++: The Functional C++ Library
3. Functional-Style Programming in C++佈局