你想要一個香蕉,但得到的卻是一個大猩猩拿著一個香蕉
本文是從 You wanted a banana but you got a gorilla holding the banana 這篇文章翻譯而來。
Joe Armstrong—Erlang語言的創造者—就軟件的可重用性問題發表的意見:
我認為,可重用性不足是面向對象編程語言里才會有的問題,函數式編程語言沒有這個問題。面向對象的編程語言之所以有這個問題是因為它們需要整個的內在的系統做支持。你想要一個香蕉,但得到的卻是一個大猩猩拿著一個香蕉,還有整個叢林。
如果你的代碼具有親系透徹性(referential transparency),你用的是純函數—所有的數據都只跟它的輸入參數,輸出值有關,不會留下任何的持久狀態—這是絕對的可重用性。
來源:Coders at Work。作者用粗體進行強調。
我大部分的工作都是用的面向對象語言,而且近期也不會有任何的改變。我對函數式編程技術更感興趣,而不是函數式編程語言:我編寫純函數,用函數當作參數或返回值等等。就像Joe Armstrong說的,這種程序代碼易于重用。如果你想重用(或測試)一個函數式香蕉,你不需要先造出一個丑陋的大猩猩來拿著這個香蕉。
來自: 外刊IT評論
本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!