| 廣告聯系 | 簡體版 | 手機版 | 微信 | 微博 | 搜索:
歡迎您 游客 | 登錄 | 免費注冊 | 忘記了密碼 | 社交賬號注冊或登錄

首頁

新聞資訊

論壇

溫哥華地產

大溫餐館點評

溫哥華汽車

溫哥華教育

黃頁/二手

旅游
搜索:  

 論壇通告:  請不要上傳第三方有版權的照片,請尊重版權,謝謝   轉載新聞請務必注明出處,這些媒體請不要轉,謝謝   批評商家需要注意  
 個人空間: XY | 羅蓬特機器人 | NotmeL8 | 豬頭看世界 | 白龍王許道長 | 一襲絳襦落鵬城,疑似玄女下九天 | 花隨風 | 呂洪來的個人空間 | lxls | 靜觀雲卷雲舒 | 顧曉軍 | 客觀中立而實事求是,唯服理據而杜絕辱罵 | 逸言堂 | 格局 | 大溫房產和地產研究 | 我的退休生活 | 禪人俗事 | 湖裡湖塗 | 天涯逐夢 | My AI Tech Channel
 最新求助: 請問誰知道哪裡有賣理發的電動推子?   忽然有個疑問:戰爭時期,加拿大拿PR卡未入籍的永久居民會被強制服兵役嗎?   這個銀條   如何修改會員名?
 論壇轉跳:
     發帖回帖獲取加西鎊, 兌換精彩禮物

論壇首頁 -> IT人生

繼續轉貼: 為什麼說面向對象編程和函數式編程都有問題 (發表於10年前)

分頁: 1, 2  下一頁  



回復主題  圖片幻燈展示  增添帖子到書簽中  給帖子中的發貼者批量贈送獻花或者花籃    |##| -> |=|        發表新主題
閱讀上一個主題 :: 閱讀下一個主題  
作者 正文
webdriver
(只看此人)




文章 時間: 2014-10-17 12:51 引用回復
函數式編程 FP - Functional Programming 最近有升溫的趨勢啊

那就轉幾篇文章看看咯
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
樓主 | 電梯直達
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)




文章 時間: 2014-10-17 12:51 引用回復
我不理解為什麼人們會對面向對象編程和函數式編程做無休無止的爭論。就好象這類問題已經超越了人類智力極限,所以你可以幾個世紀的這樣討論下去。經過這些年對編程語言的研究,我已經清楚的看到了問題的答案,所以,我經常的發現,人們對這些問題做的都是一些抓不住要領、無意義的爭論。

簡言之,不論是面向對象編程還是函數式編程,如果你走了極端,那都是錯誤的。面向對象編程的極端是一切都是對象(純面向對象)。函數式編程的極端是純函數式編程語言。
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
沙發 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)



文章 時間: 2014-10-17 12:52 引用回復
面向對象編程的問題
面向對象的問題在於它對“對象”的定義,它試圖將所有事情就納入到這個概念裡。這種做法極端化後,你就得出來一個一切皆為對象思想。但這種思想是錯誤的,因為

有些東西不是對象。函數就不是對象。

也許你會反駁,在Python和Scala語言裡,函數也是對象。在Python中,所有的含有一個叫做__call__的方法的對象其實都是函數。類似的,在Scala語言裡,函數是擁有一個叫做apply方法的對象。但是,經過認真的思考後,你會發現,它混淆了源祖和衍生物的概念。函數是源祖,包含函數的對象實際是衍生物。__call__和apply它們自身首先就是要定義的所謂“函數對象”。Python和Scala實際上是綁架了函數,把它們監禁在“對象”裡,然後打上“__call__” 和 “apply” 標簽,把它們稱作“方法”。當然,如果你把一個函數封裝到對象裡,你可以像使用一個函數那樣使用對象,但這並不意味著你可以說”函數也是對象“。

大多數的面向對象語言裡都缺乏正確的實現一等(first-class)函數的機制。Java語言是一個極致,它完全不允許將函數當作數據來傳遞。你可以將全部的函數都封裝進對象,然後稱它們為“方法”,但就像我說的,這是綁架。缺乏一等函數是為什麼Java裡需要這麼多“設計模式”的主要原因。一旦有了一等函數,你將不再需要大部分的這些設計模式。
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
板凳 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)



文章 時間: 2014-10-17 12:52 引用回復
函數式編程的問題
相似的,函數式編程走向極端、成為一種純函數式編程語言後,也是有問題的。為了討論這個問題,我們最好先理解一下什麼是純函數式編程語言。出於這個目的,你可能需要閱讀一下Amr Sabry先生(他是我的博士導師)的What is a Purely Functional Language。概述一下就是,純函數式編程語言是錯誤的,因為

有些東西不是純的。副作用是真實存在的。

所謂純函數,基本上就是忽略了物質基礎(硅片、晶體等)表現的特性。純函數式的編程語言試圖通過函數——在函數中傳入傳出整個宇宙——來重新實現整個宇宙。但物理的和模擬的是有區別的。“副作用”是物理的。它們真實的存在於自然界中,對計算機的效用的實現起著不可或缺的作用。利用純函數來模擬它們是注定低效的、復雜的、甚至是丑陋的。你是否發現,在C語言裡實現一個環形數據結構或隨機數發生器是多麼的簡單?但使用Haskell語言就不是這樣了。

還有,純函數編程語言會帶來巨大的認知成本。如果你深入觀察它們,你會看到monads使程序變得復雜,難於編寫,而且monad的變體都是拙劣的修改。monads跟Java的“設計模式”具有相同的精神本質。使用monad來表現副作用就像是visitor模式來寫解釋器。你是否發現,在很多其它語言裡很簡單的事情,放到Haskell語言就變成了一個課題來研究如何實現?你是否經常會看到一些有著諸如“用Monadic的方式解決一個已經解決的問題”這樣標題的論文?有趣的是,Amr Sabry先生一起合著了這樣一篇論文。他試圖用Haskell語言重新實現Dan Friedman的miniKanren,但他不知道如何構造這些monads。他向Oleg Kiselyov——公認的世界上對Haskell類型系統知識最淵博的人——求教。而且你可能不知道,Amr Sabry先生應該是世界上對純函數編程語言知識最淵博的人了。他們在 Oleg 的幫助下解決了疑難後一起合著了這篇論文。諷刺的是,Dan Friedman——這個程序的原作者——在使用Scheme語言開發時卻沒有遇到任何問題。我在Dan的代碼基礎上重新實現了miniKanren,增加了一個復雜的負操作。為了實現這個,我需要使用約束式邏輯編程和其它一些高級的技巧。鑒於用Haskell語言重寫基本的miniKanren將兩位世界級程序員都難倒了的事實,我不敢想象如果用Haskell的monads如何能實現這些。

有些人認為monads的價值在於,它們“圈定”了副作用的范圍。但如果monads不能真正的使程序變得易於分析或更安全,這種“圈定”有什麼用呢?事實上就是沒用處。本身就跟副作用一樣難於分析理解。沒有一種東西可以說monads能使其簡單而靜態分析辦不到的。所有的靜態分析研究者都知道這點。靜態分析利用了monads的本質,但卻去除了程序員編寫monads代碼的負擔——而不是增加負擔。當然,過度的副作用會使程序很難分析,但你也可以使用C語言寫出純函數,例如:

int f(int x) {
int y = 0;
int z = 0;
y = 2 * x;
z = y + 1;
return z / 3;
}
你用匯編語言也能做到這些。純函數並不專屬於純函數式編程語言。你可以用任何語言寫出純函數,但重要的是,你必須也應該允許副作用的存在。

回首歷史,你會發現,數學上的理想主義是純函數編程語言的背後推動力。數學函數簡單漂亮,但不幸的是,它們只是在你構建原始純粹的模型時才好用。否者它們會變得很丑陋。不要被“范疇論”等標語嚇倒。我對范疇論了解很多。即使是范疇理論學家自己也稱其為“抽象無意義”,因為它們基本上就是用一種怪誕的方式告訴你一些你已經知道的事情!如果你讀過Gottlob Frege的文章Function and concept,你會吃驚的發現,在他的這篇論文前的大多數數學家都錯誤的理解了函數,而這僅僅是剛剛100多年前的事。事實上,數學語言上的很多事情都是有問題的。特別是微積分方面。編程語言的設計者們沒有理由要盲目的學習數學界。
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
地板 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)



文章 時間: 2014-10-17 12:52 引用回復
不要盲目的愛上你的模型
無論任何事情,當走向極端時都是有害的。極端化時,面向對象編程和函數式編程都試圖把整個世界裝入它們的特有模型中,但這個世界是在完全不依賴我們的大腦思考的情況下運轉的。如果以為你有一個錘子,就把所有東西都當成釘子,這明顯是不對的。只有通過認清我們的真實世界,才能擺脫信仰對我們的束縛。

不要讓世界適應你的模型。讓你的模型適應世界。

(完)
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
5 樓 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
deerlake
(只看此人)



文章 時間: 2014-10-17 13:12 引用回復
函數式是基本,無論面向對象編程和函數式編程,到了機器碼都是函數式。
 
花籃
分享
6 樓 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
dwen999
(只看此人)



文章 時間: 2014-10-17 13:15 引用回復
Seems there are people enjoying such kind of discussion somewhere else icon_smile.gif

www.smashcompany.com/t...h-must-end
 
花籃
分享
_________________
AutoCalcs@ v2.donwen.com

- Search, Create, Store & Share Unit Conversion Unified Calculations.
7 樓 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
名震一方
(只看此人)



文章 時間: 2014-10-17 13:21 引用回復
Nerd
 
花籃
分享
_________________
|Pxz-Pzy| ≤ 1 + Pxy

Why is 6 so sad?
8 樓 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)



文章 時間: 2014-10-17 13:49 引用回復
新手入門,歡迎評論
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
9 樓 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
hairinwind
(只看此人)



文章 時間: 2014-10-17 13:54 引用回復
應該翻譯成 函數式編程 嗎???

我怎麼覺得是 面向功能的編程
原來那個是 面向對象的編程
 
花籃
分享
10 樓 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
 
回復主題     |##| -> |=|     論壇首頁 -> IT人生 所有的時間均為 美國太平洋時間
1頁,共2 分頁: 1, 2  下一頁  


注:
  • 以上論壇所有發言僅代表發帖者個人觀點, 並不代表本站觀點或立場, 加西網對此不負任何責任。
  • 投資理財及買房賣房版面的帖子不構成投資建議。投資有風險,責任請自負
  • 對二手買賣中的虛假信息,買賣中的糾紛等均與本站無關。
  • 黃頁熱門商家 免費個人廣告
    發布商業廣告

    不能在本論壇發表新主題
    不能在本論壇回復主題
    不能在本論壇編輯自己的文章
    不能在本論壇刪除自己的文章
    不能在本論壇發表投票
    不能在這個論壇添加附件
    可以在這個論壇下載文件

    論壇轉跳: 

    webdriver, webdriver, webdriver, webdriver, webdriver, deerlake, dwen999, 名震一方, webdriver, hairinwind
    潛力帖子 精華帖子 熱門帖子
    法國情報高級官員證實至少一架陣風...
    巴印空戰0比6之啟示
    加拿大就業市場幾十年來最差 年輕人...
    戰機是陣風還是大疆?
    皇家鑄幣廠【渥太華開放日】
    趕緊加油!本周大溫油價就要起飛
    離譜 大溫超800張選票就這樣被忘了
    西洋老歌。五百二十三
    最是一年春好處:總結經驗,吸取教...
    遙遙領先 - 天朝鉈中毒已經如此普遍...
    2025年“五一”假期文化和
    今天看眼醫
    元初的參雞湯
    超級店的苞米
    日本的
    5月2日換幣盛況
    維達大師,另類收藏,請您欣賞!
    清代福州台伏鈔票
    四川官錢局鈔票
    大漢四川軍政府軍用銀票
    今年新幣發行計劃
    要出一個新的一元
    古董金幣
    mint三月新幣(四月新幣從22樓起,五...
    1999 mule 25分
    2025 蛇年敲幣活動
    加拿大新總理馬克卡尼
    我在小紅書被罵窮得沒錢給孩子買衣服
    美國2025年AWQ(美國婦女25c)發行計劃
    韓國空難FDR黑匣子缺失最後四分鍾關...
    皮爾今天在溫哥華 - 藍色wave - 保...
    幾分鍾前,中國強硬反擊,征34+50,...
    曼谷高樓直接倒了
    我說我希望特朗普贏,老公氣得眼睛...
    知乎?加西網上為什麼有老男人喜歡...
    明明有能力統台,大陸為何遲遲不動手?
    貌似ndp稍占上風。。。。。
    今天是感恩節,跟大家道個別,以後...
    咱最後還是投了ndp
    生平第一次被偷車了
    中國會不會武統台灣
    突發:台灣隊戰勝中國隊奧運奪冠,...
    溫哥華房姐出事了
    有在看總統辯論的嗎?
    退休幾年後的感悟

    最新新聞 熱門新聞 熱評新聞
    無人機穿越大理千年古塔落券洞內 涉事"飛手"被拘
    澤連斯基稱烏克蘭已准備好實現為期30天的停火!
    妻子舉報丈夫涉嫌重婚:同一小區內兩個"家"
    A股"掌門"薪酬曝光:13名董事長年薪超千萬
    美英宣布達成貿易協議 但具體細節尚待敲定
    緬甸多個電詐園區用"星鏈"上網 馬斯克被質疑...
    中國工信部出手整頓隱藏式汽車車門把手
    英媒:比黃金還珍貴的月塵從中國運抵英國
    美國官員:巴基斯坦用殲-10擊落印度陣風,沒用F-16
    紀念蘇聯偉大衛國戰爭勝利80周年,紀念的是什麼?
    應對貿易戰,歐盟的"籌碼"與"祭品"...
    反抗中共威權教會我的事:順從無法換來仁慈
    喉嚨出現5症狀 可能是食道癌前兆
    金巧巧回應"不適合演農村人"言論:原意是說演技窄
    印巴沖突升級以來莫迪首次發表講話,敦促各部...
    "疫苗導致的死亡海嘯已經來臨" 中國博主發文
    塵埃落定!"安胖"牽手桑巴軍團,劍指世界杯
    廣東發布31條振興消費方案 以舊換新、薪資成長…
    下狠手!9場狂丟16球 國足門神被棄用?
    歐冠決賽:法甲豪門被看高,藍黑軍團存隱憂
    61歲韋唯定居泰國,養水牛種水稻
    素裡雙重凶殺案 21歲男子被控罪
    科學家"算"出地球生命終結的時間
    高速路上2歲娃駕車 父親一臉淡定 網友憤怒
    上海推動商戶「輕微免罰」 讓企業休養生息振經濟
    中國很難介入"巴鐵"和印度之戰(圖
    川普稱中國要求會談 美財長:中國不是發展中國家
    "他們滿腦子都是錢,留學生千萬別來!"
    瑞士談判之際,美中傳來利好大消息
    中國不賣了 價漲210% "卡脖子"大殺器
    "疫苗導致的死亡海嘯已經來臨" 中國博主發文
    加拿大皇家馬戲團素裡列治文開演
    蓋茨擬捐幾乎全部身家 斥馬斯克殺最貧窮兒童
    溫市中心將聳立315米高樓 BC最高
    少女濾鏡徹底碎了!75歲王薇薇紅毯生圖嚇到網民
    內幕:習誤判慘遭重擊 終給川普遞上誠意清單
    塵埃落定!"安胖"牽手桑巴軍團,劍指世界杯
    廣東發布31條振興消費方案 以舊換新、薪資成長…
    瑞士談判之際,美中傳來利好大消息
    下狠手!9場狂丟16球 國足門神被棄用?
    歐冠決賽:法甲豪門被看高,藍黑軍團存隱憂
    61歲韋唯定居泰國,養水牛種水稻
    素裡雙重凶殺案 21歲男子被控罪
    上海推動商戶「輕微免罰」 讓企業休養生息振經濟
    中國很難介入"巴鐵"和印度之戰(圖

    更多方式閱讀論壇:

    Android: 加西網
    [下載]

    Android: 溫哥華論壇
    [下載]

    PDA版本: 論壇

    加西網微信

    加西網微博


    Powered by phpBB 2.0.8
    Terms & Conditions    Privacy Policy    Political ADs    Activities Agreement    Contact Us    Sitemap    

    加西網為北美中文網傳媒集團旗下網站

    頁面生成: 0.0531 秒 and 6 DB Queries in 0.0017 秒