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

首頁

新聞資訊

論壇

溫哥華地產

大溫餐館點評

溫哥華汽車

溫哥華教育

黃頁/二手

旅游
搜索:  

 論壇通告:  轉載新聞請務必注明出處,這些媒體請不要轉,謝謝   請不要上傳第三方有版權的照片,請尊重版權,謝謝   批評商家需要注意  
 個人空間: XY | 我的退休生活 | 我在溫哥華 | 羅蓬特機器人 | 忽然聽到一個墨西哥女仔唱。呐呐呐呐呐呢呐 | 我大爺 | nessus | Calm zone | 白龍王許道長 | 顧曉軍 | lxls | 時事新聞專遞 | 客觀中立而實事求是,唯服理據而杜絕辱罵 | 烏蓬船 | 亂想 | Invisible world | sasa0f | 快樂的獅子 | xian | 湖裡湖塗
 最新求助: 請問誰知道哪裡有賣理發的電動推子?   忽然有個疑問:戰爭時期,加拿大拿PR卡未入籍的永久居民會被強制服兵役嗎?   這個銀條   如何修改會員名?
 論壇轉跳:
     發帖回帖獲取加西鎊, 兌換精彩禮物

論壇首頁 -> IT人生

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

分頁: 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
    潛力帖子 精華帖子 熱門帖子
    炸鍋 特魯多又挑事 對自住房開刀?
    有介紹修理電視機的嗎?
    火爆!加拿大掀起"賣房潮" 房價跌跌不休
    如果不盡快降息 加國失業率或超7%
    什麼樣的民眾養什麼樣的政府
    恐慌蔓延,中國民眾蜂擁搶購這兩樣
    日本油
    打算把家裡的辣椒油等調料都給退了
    買了個跑步機
    機場人多啊啊啊啊啊啊啊啊啊啊
    人太多 泳池的水
    盤點一下這些年中國人搶過的東西
    大國罐
    咨詢一下,Intel。微軟的問題如何處...
    靠四口也要漲費
    黃山
    2024新流通紀念幣:紀念著名作家露...
    巡回換幣活動
    有去過大理的朋友嗎?
    東京 富士山 鐮倉
    首爾(二)兩所大學和一條唐人街
    在首爾景福宮見到了明娘娘
    在Victoria華裔博物館裡面的一套token
    日本五日游記
    Mule Coin 無法抗拒的魅力之一:200...
    法國阿爾卑斯山區
    明天又要上班了
    漂亮的MS66
    The Value of Money
    再去chief peak
    有在看總統辯論的嗎?
    退休幾年後的感悟
    你們洗一次牙的價格一般多少錢?
    最近愛上了KALE
    刺傷4美國講師 凶手身份曝光,前50...
    從64看中國人的奴性和殘暴。
    大溫2室租金將達2800
    在北美得了大病真是只能等死了
    國內最驕傲的兩件事外賣和快遞
    烏克蘭已經花掉了美國七百多億美元
    大家如何看待北京同仁堂汞超標5萬倍...
    身在海外,痛罵國內人不反抗挺壞的
    95個小時,這是看急診嗎
    疫情4年後,海外華人去中國的觀感
    在加做房東有罪嗎?

    最新新聞 熱門新聞 熱評新聞
    抑郁症經常說的4句話 你沒有說過
    運動是良藥 癌症患者運動30分鍾後...
    英前首相亮相首富家婚禮 三娃首秀
    山城街拍 小背心熱辣演繹潮流魅力
    喬欣被曝已結婚 男方遠比楊洋優越
    香港豪門闊太忽然改名 還要轉運
    汪小菲直播質問大S孩子不能回北京
    大溫租客老喂鳥被趕 這次房東贏了
    可惜!溫村慘死摩托車手是27歲的他
    死傷7萬! 俄軍遭遇迄今最嚴重戰損
    幹啥了?大溫女經紀重罰13萬還吊牌
    開車逛黃石沖進溫泉 5人熱池逃生
    舊病重提:日本再度爆發新冠疫情
    打折速銷 "李嘉誠5折賣房"成熱議
    老照片:回國前的錢學森一家
    大疆無人機難以替代 美取消禁令
    重慶墊江洪災:祖孫3人遇難村莊拉起警戒線
    訂婚了但婚房沒著落,男子:7年過了仍未交付
    Meta將解封特朗普,特朗普曾稱:當選後要把小扎送監
    伊能靜全家回台北老家,裸磚牆壁、瓷磚開裂....
    佟大為變"佟大夫",今晚回歸《非誠》為愛情"把脈"
    "北約局外人"奧班 與川普見面談和平使命
    曾與蔣欣相戀多年,轉身娶了小四歲嬌妻,如今...
    3歲男童泳池落水23秒後被發現,網紅母親控訴...
    北大畢業後為學醫,她重返高考考場
    南京大屠殺幸存者石秀英離世:享年98歲
    眾院通過法案禁止非公民投票 投票權倡導者表異議
    女孩被熊扔下120米懸崖 男友目睹全程嚇暈撿條命
    殘障女孩遭遇"鹹豬手":有人留下心理抹不去的陰影
    4歲女童和200鱷魚"共泡浴缸" 臉貼臉嚇壞眾人
    數千印度人落地加國機場被拒入境
    欠2.7萬的新冠福利 溫村男子叫冤
    停車堵了消防栓!這司機的代價大了
    35歲女巨嬰教科書級裝癱20年,熬死父母逼走姐夫
    驚!溫村兩房公寓12張床 1個衛生間
    被評"未斷奶的民族" 中國人為什麼極難開化?
    經濟學人:中國對台灣青年的吸引力下滑
    18紅色家族聯手 傳鄧小平之孫被捕
    老照片:回國前的錢學森一家
    大溫少女錫克廟被性侵 男子被控罪
    飛船故障 滯留太空超1個月 美宇航員發聲
    重磅:以色列公布10月7日恐怖襲擊的驚人內幕
    食用油裡摻煤油對身體有多大危害?
    替代品技術性能跟不上 美取消大疆無人機禁令
    我印度裔未出生就被華裔母親收養

    更多方式閱讀論壇:

    Android: 加西網
    [下載]

    Android: 溫哥華論壇
    [下載]

    PDA版本: 論壇

    加西網微信

    加西網微博


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

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

    頁面生成: 0.0543 秒 and 7 DB Queries in 0.0015 秒