2011-03-23 103 views
5

我大多是Java開發人員,這是我擁有最多經驗的地方。我想提高自己的編碼技能,所以我正在學習一門功能性語言。學習函數式編程

我不希望它對我來說太大,我不想陷入太多陌生的事情,我想盡快趕上。

你可以推薦一個語言/平臺,我認真看待函數式編程嗎?

回答

8

說實話,這是一個很大的飛躍,使學習功能語言這樣的好處。我想說的是用「最純粹」的功能語言Haskell來深入探索。

書籍Real World HaskellThe Haskell School of Expression是很好的介紹。

+0

不是原始問題的答案,但仍然是「潛入深處」的+1。 – 2011-03-23 16:43:35

+1

另一個很好的網站,可以讓您輕鬆進入函數式編程的思想,就是「學習你更好的Haskell」:http://learnyouahaskell.com/chapters – chaotic3quilibrium 2011-12-26 20:18:46

2

Scala設計時考慮到了Java和JVM。聽起來像是一個很好的開始。

official web site

0

如果您有時間閱讀本書,請嘗試「Effective Java」。這對開發人員來說是一本很好的書。

+0

我同意此答案。多年來,我一直在Bloch的書中使用這些想法,這導致我的Java代碼在任何地方都強烈使用不變性。這個單一的想法大大改變了我的想法,更多地思考函數式編程範例。它大大緩解了我現在學習的Scala。 – chaotic3quilibrium 2011-12-26 20:20:21

7

嘗試斯卡拉。它不是純粹的函數式編程語言,但它恰好適合您的工具箱。見Learning Scala

另一個選項可能是Clojure。這也不是純FP,但是作爲Lisp方言,它提供了很多相關的功能。

+0

我會嘗試scala,如果我發現哈斯克爾太多的一個飛躍:)謝謝! – JMM 2011-03-25 12:45:48

0

幾種可能性。 Scala在JVM上運行,所以你可以使用Java庫來做很多事情。我不是粉絲,它太複雜,需要學習很多語法。

計劃可以說是學習FP的最佳語言,因爲您可以在30分鐘內學習語法。

您還可以看看混合語言,如JavaScript,它也具有某些功能語言方面的功能(最重要的是封閉功能),但仍保留程序傳統語法。

+0

我認爲最終,Scheme最終會比Scala更難以學習,至少對我而言更是如此。嘗試在第一次學習Scala時使用所有Scala當然很複雜。這是一個非常複雜而複雜的語言。然而,如果一個人只是在「無分號的Java」模式下使用Scala,然後只需要一點點大塊來學習新的Scala增強功能,Scala就完全不復雜。事實上,對於一個有經驗的Java開發人員來說,爲了實現_pragmatic_(即不完美)函數式編程,實現小的可實現的飛躍是完美的。 – chaotic3quilibrium 2011-12-26 20:23:31

0

作爲Java的新程序員,您最好看看Java領域的功能,比如有效的Java,* Java的官方API *以及許多其他的API。順便說一句,我喜歡Oreilly的Book 。

0

由於您非常有興趣學習函數式語言,因此我會建議Ocaml(Objective Caml)。我可以建議你一本好書來學習函數式編程和lambda微積分。

類型和編程語言通過Benjamin C. Pierce。
http://www.cis.upenn.edu/~bcpierce/tapl/

3

給雪人一個嘗試。這是一個先進的毫升方言jvm

它是純粹的功能,集成與Java很好,是靜態類型,比簡單比斯卡拉簡單。具有更簡單的類型系統,但具有完整的類型推斷。

http://mth.github.com/yeti/