[问卦] 有没有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