Clojure

Clojure 學習總結html

Clojure 是一種運行在 Java 平臺上的 Lisp 方言,一門古老語言的復興之路java

http://blog.csdn.net/column/details/learn-clojure.html 數組

Scala


scala是以實現scaleable language爲初衷設計出來的一門語言。官方中,稱它是object-oriented language和functional language的混合式語言。而且,scala能夠和java程序無縫拼接,由於scala文件編譯後也是成爲.class文件,而且在JVM上運行。不過,我更關心的是它的scaleable(擴展性)。一門語言到底怎樣纔算有擴展性呢?對語言而言什麼是它的擴展性呢?

我的拙見,認爲語言的擴展性可能包括兩個方面:

一、語言自己的擴展性

二、由此語言寫出來的程序的擴展性

對於第一點,在scala的介紹中提到有些developer能夠用scala來定義本身的Domain Specific Language。我想,這一點也許就體現了scala語言自己的擴展性,即它有潛力能夠被加工爲另外一門可用在專門領域中的語言(或許是經過增長某些模型,或某些操做等)。

對於第二點,感觸最深的就是立刻要見到的Tuple。曾經在作一個項目時,但願一個函數能夠多返回兩個參數,而不得不從新定義一個JavaBean(繼承了它的前輩以保留以前的其餘返回值),可是這樣致使上層代碼一片混亂,一下子是調用原先的BaseBean,一下子又是調用新的Bean。若是Java中也能有相似Tuple的東西就太方便了。

文中將描述三個內容:

Tuple -能夠將不一樣類型的數據存儲在一個數組中

singleton objects - scala中沒有靜態方法和屬性,所有由singleton object(單例對象)來替代

trait - scala中的類interface物,可是能夠擁有方法體,而且能夠在類實例化時混入,而不需爲了包裝某個類而產生子類

Tuples  數組
Like Lists, tuples are immutable, but unlike Lists, tuples can contain different types of elements. Thus whereas a list might be a List[Int] or a List[String], a tuple could contain both an Int and a String at the same time. Tuples are very useful, for example, if you need to return multiple objects from a method. Whereas in Java, you would often create a JavaBean-like class to hold the multiple return values, in Scala you can simply return a tuple.

val pair = (99, "Luftballons")
println(pair._1)
println(pair._2)函數

相關文章
相關標籤/搜索