顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2013-11-10 10:36:34
看板 Programming
作者 drm343 (一卡那亞)
標題 Re: [問題] 大家覺得函數式語言有前途嗎?
時間 Fri Oct  4 00:28:58 2013


※ 引述《carelai (風云人物)》之銘言:
: 就是以Haskell,OCaml,Clojure,Scala為代表的語言,
: 在將來會有前途嗎?正面和反面的理由各是什么?謝謝諸位。

我幫 irc 上的前輩簡單轉達他個人的看法。

要正確分析這問題得從經濟跟語言的角度同時討論,並不是
簡單就可以回答的問題,如果是問最容易轉移,那答案可能
是 Scale。



下面是我自己的經驗。

經濟的部份我也回答不了,但如果是討論語言的話,我還算
有一些心得可以給你,因為 clojure 跟 Scala 不在我的守
備範圍內,也就不講這兩個了,就說 haskell、ocaml、sml
、scheme 這四個。


sml 跟 ocaml 是 ML 的兩個方言,有人在 coursera PL 課
的討論區問 Dan Grossman(該課的教授)你自己平常用哪個
sml (PL 課的第一個語言是 SML)實作品,他回答:「我教
學都用 sml,實際開發則用 ocaml 但完全不使用OO 的部份」
sml 有非常嚴謹的規格定義,只要有寫在定義內的,所有實作

都會相容,甚至有直接把其它實作品 lib  拿來用的(mlton)。

但是沒寫在規格內的東西,大家就會以自己的意思去做,例如
IO ...

ocaml 相較於 sml  就沒有這麼嚴謹了,好處是謹此一家,如
果我們不算上微軟的 F#.....相較於 sml,ocaml 實用的 lib
很多,處理utf8  的部份也比 sml  方便,如果你跟我一樣不
想用 OO 又想逃離 monad,那 ocaml會是不錯的選擇。


haskell 是目前 ML 系語言中,社群整合最好的,cabal 很方便
就能下載別人寫好的 lib  來用,但相較於前兩者,要跨過的門
檻就高很多,一般的 FPL  都會提供一個用來宣告 side-effect
變數的方法,即使是很雜的 Common Lisp  也有區分這兩者,

haskell 用來提供 side-effect  的做法叫作 monad,這還只是
第一個門檻,光這個就可以讓人花上半年一年去搞懂它了,更
不必提載下來的兩個 lib  都有 monad  的時候該怎麼辦了。

但是當我們想了解 Types  是什麼,PL  又是什麼,又例如該怎
麼設計一個 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)
MOONRAKER:難怪看起來有點短1F 118.163.12.174 台灣 10/04 10:30
Schelfaniel:最容易轉移的是Scala :QQ2F 111.251.139.60 台灣 10/06 19:38
drm343:阿,打錯字了XD3F 36.236.20.149 台灣 10/07 19:40
kennyluck:哪個 irc 頻道啊?4F 125.34.209.80 中國 10/15 07:38
suhorng:#haskell.tw5F 140.112.16.131 台灣 10/15 11:57

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 1448 
※ 本文也出現在看板: FW
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇