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)函数

相关文章
相关标签/搜索