2013-05-27 38 views
0

Scala是一種多範式語言,功能就是其中的一種範例。我想學習函數式編程,而且Scala還有許多其他特性吸引我(它是一顆冉冉升起的新星,在JVM上運行,可以訪問Java庫等)。我的問題是:Scala的功能部分是否足以學習函數式編程的基礎知識函數式編程可以通過Scala學習嗎?

+0

要應用功能性技術,至少需要*函數參數*和*閉包*。包括JavaScript,Perl,Go,Lua,C++ 11,Scheme在內的許多語言爲此提供了很好的實現(有些像Python,Php和Ruby也不太好)。更多的功能性「附加」是尾遞歸,不變性,「一切都是表達」和高級類型的系統。類型推斷。 Ocaml,Haskell和Scala都有這些,但是Scala首先是一個面向對象的語言,它可能會遮蔽一些功能方面。所以斯卡拉是足夠的,但需要OO不像Scheme,Haskell,Ocaml。 – amon

回答

5

Courseworkbook和另一個book說是。如果你想要的不僅僅是基礎知識,你可以添加一個library充滿靈巧的角落,有一個方便的tutorial

1

是的。 Scala具有使語言起作用的所有功能。雖然沒有標準的定義,功能如同一流,能夠通過函數作爲參數,不變性,尾遞歸和others

然而,Scala是對象功能的,其中可以使用對象和/或函數來解決基於問題空間的問題。如果你希望有這樣的靈活性,最好看一看。

PS:\在Scala 2.11中,我們期待scala中的宏。