[問卦] 有沒有Functional Programming的八卦

作者: newup (希望有個放縱的夜晚)   2017-12-24 17:09:06
現在好像很流行 函數式編程
好像就是用很多遞迴的寫法
可是遞迴不是會降低效能嗎?
本學店的老師 有做過類似的講座
https://www.youtube.com/watch?v=PQrVVPNA98I&t=1526s
可是我看完
我還是不懂 使用遞迴的好處在哪裡
重點是只有好debug嗎?
作者: zzzz8931 (肥宅)   2016-12-24 17:09:00
116 問 jserv
作者: awashharp (AwA)   2017-12-24 17:10:00
函數式編程?面向對象編程?
作者: james732 (好人超)   2017-12-24 17:10:00
google一下就可以查到一堆資料了
作者: Feketerigo (黑鶇)   2017-12-24 17:10:00
遞迴速度超慢 除非不得已 不然我不喜歡用
作者: moonshade (一隻歐拉貓)   2017-12-24 17:11:00
看你怎麼寫用在什麼問題而已
作者: SupCat (空空)   2017-12-24 17:12:00
遞迴結構簡單 邏輯也清楚
作者: moonshade (一隻歐拉貓)   2017-12-24 17:12:00
講出速度超慢這就更好笑了,就push+jmp 是能有多慢真正的問題是stack有限
作者: JamesForrest (Forrest)   2017-12-24 17:12:00
編程,你還是回中國去吧
作者: ckniening (☞罌粟小子☜)   2017-12-24 17:13:00
有時候hen好寫
作者: james732 (好人超)   2017-12-24 17:13:00
操作stack會是多餘的開銷沒有錯啊
作者: awashharp (AwA)   2017-12-24 17:13:00
只是想酸支那用語啦XD
作者: moonshade (一隻歐拉貓)   2017-12-24 17:14:00
stack是local memory,通常都在cache裡...如果要把資料丟進queue可以back track,都是一樣慢的用recursive function並不會比較慢通常不用遞迴解法就是開個queue 然後用switch模擬遞迴但是從組語看是作一樣的事只要語言支援expendable stack就不會有這問題C/C++是沒救了因為function call的架構是寫死的
作者: freef1y3 ( )   2017-12-24 17:21:00
tail recursion在compiler優化後跟loop效能是一樣的
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-12-24 17:25:00
可以消除物件的狀態。函數式優雅、質樸,沒有多餘的部份。函數式語言中沒有冗餘的成份
作者: freef1y3 ( )   2017-12-24 17:28:00
我覺得函數式語言麻煩的地方是有些計算本來就有狀態概念例如Graph traversal要記錄哪些點已經走過了
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2017-12-24 17:29:00
那就只能用 tail recurtion 把狀態傳下去lol例如 C 語言有 if while return and or 關鍵字,但事實上只需要用遞迴就能實現 while ,用形參實參就能實現 scope ,甚至物件也能用函數實現。也就是程式語也就是程式語言中大多功能都是多餘的,只有函數是必要
作者: zzzz8931 (肥宅)   2017-12-24 17:35:00
樓下 116 幫原 PO 問 jserv

Links booklink

Contact Us: admin [ a t ] ucptt.com