我正在研究JavaFX Script并试图将它与Scala进行比较,Scala是另一种非常有趣的Java平台新语言。
在Scala官方网站上,我找到了this example,这是一个快速排序实现。 然后,我编写了以下等效的JavaFX Script程序(使用NetBeans IDE 6.7.1):
package examples;
function sort(a: Integer[]): Integer[] {
if (sizeof a < 2)
a
else {
def pivot = a[sizeof a / 2];
[sort(a[n | n < pivot]), a[n | n == pivot], sort(a[n | n > pivot])];
}
}
function run(args: String[]) {
def xs = [6, 2, 8, 5, 1];
println(xs);
println(sort(xs));
}
两个功能程序非常相似,但我更喜欢JavaFX版本。 Scala版本中的那些“_”和“:::”部分对我来说看起来不太吸引人......
当然,这两种语言还有很多,所以我正在寻找更多的例子。 有谁知道我能在哪里找到一些?或者甚至更好,在这里发布其他例子?
答案 0 :(得分:3)
请记住,Scala语法非常灵活。你可以用这种方式轻松地写出“:::”和“_”:
package example
/** Quick sort, functional style */
object sort1 {
def sort(a: List[Int]): List[Int] = {
if (a.length < 2)
a
else {
val pivot = a(a.length / 2)
List.concat(
sort( a.filter( n => n < pivot ) ),
a.filter( n => n == pivot ),
sort( a.filter( n => n > pivot ) )
)
}
}
def main(args: Array[String]) {
val xs = List(6, 2, 8, 5, 1)
println(xs)
println(sort(xs))
}
}
对于代码比较,我通常会看http://rosettacode.org/ 它有几个Scala示例,但没有JavaFX示例。如果你在这个项目中走得很远,请花些时间在该站点上添加一些JavaFX。 : - )