※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2013-11-10 10:36:34
看板 Programming
作者 標題 Re: [問題] 大家覺得函數式語言有前途嗎?
時間 Fri Oct 4 00:28:58 2013
※ 引述《carelai (風云人物)》之銘言:
: 就是以Haskell,OCaml,Clojure,Scala為代表的語言,
: 在將來會有前途嗎?正面和反面的理由各是什么?謝謝諸位。
我幫 irc 上的前輩簡單轉達他個人的看法。
要正確分析這問題得從經濟跟語言的角度同時討論,並不是
簡單就可以回答的問題,如果是問最容易轉移,那答案可能
是 Scale。
簡單就可以回答的問題,如果是問最容易轉移,那答案可能
是 Scale。
下面是我自己的經驗。
經濟的部份我也回答不了,但如果是討論語言的話,我還算
有一些心得可以給你,因為 clojure 跟 Scala 不在我的守
備範圍內,也就不講這兩個了,就說 haskell、ocaml、sml
、scheme 這四個。
有一些心得可以給你,因為 clojure 跟 Scala 不在我的守
備範圍內,也就不講這兩個了,就說 haskell、ocaml、sml
、scheme 這四個。
sml 跟 ocaml 是 ML 的兩個方言,有人在 coursera PL 課
的討論區問 Dan Grossman(該課的教授)你自己平常用哪個
sml (PL 課的第一個語言是 SML)實作品,他回答:「我教
學都用 sml,實際開發則用 ocaml 但完全不使用OO 的部份」
sml 有非常嚴謹的規格定義,只要有寫在定義內的,所有實作
的討論區問 Dan Grossman(該課的教授)你自己平常用哪個
sml (PL 課的第一個語言是 SML)實作品,他回答:「我教
學都用 sml,實際開發則用 ocaml 但完全不使用OO 的部份」
sml 有非常嚴謹的規格定義,只要有寫在定義內的,所有實作
都會相容,甚至有直接把其它實作品 lib 拿來用的(mlton)。
但是沒寫在規格內的東西,大家就會以自己的意思去做,例如
IO ...
ocaml 相較於 sml 就沒有這麼嚴謹了,好處是謹此一家,如
果我們不算上微軟的 F#.....相較於 sml,ocaml 實用的 lib
很多,處理utf8 的部份也比 sml 方便,如果你跟我一樣不
想用 OO 又想逃離 monad,那 ocaml會是不錯的選擇。
果我們不算上微軟的 F#.....相較於 sml,ocaml 實用的 lib
很多,處理utf8 的部份也比 sml 方便,如果你跟我一樣不
想用 OO 又想逃離 monad,那 ocaml會是不錯的選擇。
haskell 是目前 ML 系語言中,社群整合最好的,cabal 很方便
就能下載別人寫好的 lib 來用,但相較於前兩者,要跨過的門
檻就高很多,一般的 FPL 都會提供一個用來宣告 side-effect
變數的方法,即使是很雜的 Common Lisp 也有區分這兩者,
就能下載別人寫好的 lib 來用,但相較於前兩者,要跨過的門
檻就高很多,一般的 FPL 都會提供一個用來宣告 side-effect
變數的方法,即使是很雜的 Common Lisp 也有區分這兩者,
haskell 用來提供 side-effect 的做法叫作 monad,這還只是
第一個門檻,光這個就可以讓人花上半年一年去搞懂它了,更
不必提載下來的兩個 lib 都有 monad 的時候該怎麼辦了。
不必提載下來的兩個 lib 都有 monad 的時候該怎麼辦了。
但是當我們想了解 Types 是什麼,PL 又是什麼,又例如該怎
麼設計一個 PL 的時候,最容易幫助我們理解並且解決這些問題
的通常會是 FPL,你可以 google 書單,就不多講這個了。
麼設計一個 PL 的時候,最容易幫助我們理解並且解決這些問題
的通常會是 FPL,你可以 google 書單,就不多講這個了。
scheme 也是很不錯的語言,除了很多人靠悲的 () 這個,雖然
有規範,但實作品之間的相容度不高,很多時候光是宣告一個
function 的 keyword 就不相容了,這語言好在一致性,開頭
一定是函數,如果你看不到函數,那代表被 sugar 隱藏起來了,
至於這語言有多棒多好用,我建議你搜尋「王垠」。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.236.22.105
我還沒打完,不小心按到發送了啦XDDDDDDD
本來想要儲存,明天再繼續打的.....Orz|||
※ 編輯: drm343 來自: 36.236.22.105 (10/04 00:35)
→ :難怪看起來有點短1F 118.163.12.174 台灣 10/04 10:30
推 :最容易轉移的是Scala :QQ2F 111.251.139.60 台灣 10/06 19:38
→ :阿,打錯字了XD3F 36.236.20.149 台灣 10/07 19:40
推 :哪個 irc 頻道啊?4F 125.34.209.80 中國 10/15 07:38
推 :#haskell.tw5F 140.112.16.131 台灣 10/15 11:57
--
回列表(←)
分享