怎樣評價 LambdaConf 提出的「函數式編程技能表」?
LambdaConf 發布了「Ladder of Functional Programming」,用於將未來會議的 session 按照難度進行分類,以便聽眾找到適合自己的內容。發布之後在 twitter/Hacker News等社區引發的討論目前以惡評為主。怎樣評價這一目錄?
Hacker News 鏈接:Standardized Ladder of Functional Programming [pdf]twitter 鏈接:https://twitter.com/lambda_conf/status/803695008100466688圖片版:
題外話,其實我覺得,談到「函數式」就拿Haskell這種量級的作對比,作標杆,對推廣FP並非好事。。有很多人是真的覺得,「」沒GADT,HKT之類的也能幹活怎麼滴!」、「Coq的依賴類型我都弄不明白呵呵噠!」。。對於社區推廣者,路要一步一步地走,必要時用JS也可以安利FP的;對於學習者,自己用著舒服開心最重要,先腳踏實地。。
回到正題,這分類自然是不合理的,比如Graph reduction, equational reasoning也不並多難懂,感興趣的莫被誤導。。語言本來就是溝通交流用的啊。。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1987年9月在美國俄勒岡州的波特蘭,
舉行了一次關於函數式編程語言和計算機體系結構的會議,FPCA"87。人們提到了函數式編程社區的現狀。
社區中已經出現了十幾個非嚴格語義(non-strict semantics)的純函數式編程語言,它們全都表現力豐富,而且建立在語義學基礎之上。然而,沒有一門公共語言用來交流,妨礙了這些語言的廣泛使用。
於是,會議達成共識,決定設計一門新的語言,用來更快的交流新想法,這樣可以保證基礎更加牢固,也可以推動實際生產環境中的應用,對於那些想學習函數式語言的人們,也方便了許多。這門語言就是Haskell,以邏輯學家Haskell B. Curry命名。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A History of Haskell為嘛邀請我回答這種問題 = = ...這個圖我也沒啥感覺,我學haskell也沒按照這個順序,畢竟還要拿來做工程,High-performance不可能放到最後才開始學 ; )
每個人都有自己的學習路線,從自身的角度出發,參照這個表上查缺補漏學習些新知識挺好。至於引起惡評什麼的,我也不參加LambdaConf,就不評價了 = =這個《指引》明眼人一看就知道是為haskell量身定做的,但是為什麼要這樣呢? 它目的是什麼呢?
咱們分析一下啊
lisp派。一個個跟不食人間煙火的神仙似的,一向只跟自己人搞基和撕逼,所以嘛,肯定對這種事情無感
erlang派。erlang人其實都是搞系統的,容錯,監控,調優……老哥只在乎穩不穩,誰在乎語言啊,他們要是在乎語言的話能把語法設計得那麼丑?
Scala派。老實說我懷疑Scala派相當一部分人並不知道這份清單上的半數名詞到底是什麼意思,甚至有人會想:我去,好高大上呀,一定是做給Scala的。不過沒關係,他們以後會知道的,反正日後肯定是Scala的天下了
coq,adga,idris 派。「gadt這種弱智似的依賴類型居然吹成高大上。尼瑪我們一入門就要學完整的依賴類型好不好?haskell這種帶bottom值的low貨就別拿出來丟人行不行?」
剩下就是ml派了。f#的人忙著掙大錢,sml的人忙著寫論文,都沒空管這事;ocaml呢……
ocaml肯定很不爽啊!
所以說,這其實是一場haskell vs ocaml的撕逼
(我都是胡編亂造的,感謝閱讀)謝邀。Ladder of Functional Programming個人覺得還是可以的,就像一個燈塔,指明了函數式編程的學習方向,也給有志努力學習函數式編程的同學有一個檢驗的標準。至於有人覺得和Haskell比較等同,這是有些片面了。這些東西除了在Haskell上有,在其他具有函數式編程特性的語言中也是有的,如Scala、typed racket等。學習函數式編程的這些特性實際上最終還是要建立一套自己的應用體系,哪些地方用哪些特性是合適的,在具體的應用場景中該用哪些特性來組織程序,構建出健壯、靈活的大型程序。
lambda和functional是對立的
We owe a great debt to Kenneth Iverson for showing
us that there are programs that are neither word-at-a-time nor dependent on lambda expressions, and forintroducing us to the use of new functional forms.—— Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs
所謂技能表,無論是哪個機構或者個人發布出來的,不管是不是張口就來的胡扯都招人黑。
Who cares !?
推薦閱讀:
※Haskell Book 這本書怎麼樣?
※如何解釋 Haskell 中的單子(Monad)?
※如何學習 Haskell ?
※什麼是GADT?它有什麼作用?
※OCaml or Haskell?