C++函數式編程(六)行動指導

來源:互聯網
上載者:User

原文:http://www.altdevblogaday.com/2012/04/26/functional-programming-in-c/

作者:John Carmack

-潘宏 譯

-2013年1月

-email:
popyy@netease.com

-weibo.com/panhong101

研究研究你程式碼程式庫中的一些別太簡單的函數,跟蹤它們會觸及到的各種外部狀態,以及它們會修改的各種資料。就算你沒有對代碼做任何修改,單把這些研究結果寫成注釋就讓你得到了一份不錯的文檔。如果再有某個函數可以通過渲染系統對螢幕進行更新,那麼你就可以舉手宣布代碼中都有哪些機制超出了人類的理解範圍。

下一步要做的,就是從頭思考這些函數到底怎樣工作。收集程式的輸入,然後把它們傳入一個純函數中,最後取得並處理那些結果。

調試代碼的同時,警惕狀態變化以及隱含參數,它們往往會掩蓋程式啟動並執行實際情況。

修改一些工具對象代碼,把改變對象自身的函數改成返回結果拷貝。試試給每個用到的非迭代器對象前面加上const修飾符。

參考文獻:

http://www.haskell.org/haskellwiki/Introduction

http://lisperati.com/

http://www.johndcook.com/blog/tag/functional-programming/

http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf

http://channel9.msdn.com/Shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1

http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf

http://www.cs.cmu.edu/~crary/819-f09/Backus78.pdf

http://fpcomplete.com/the-downfall-of-imperative-programming/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.