1

我正在研究 JavaFX Script 并试图将其与 Scala 进行比较,Scala 是 Java 平台的另一种非常有趣的新语言。

在官方 Scala 站点中,我找到了这个示例,它是一个快速排序实现。然后我编写了以下等效的 JavaFX 脚本程序(使用 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 版本中的那些 "_" 和 ":::" 部分看起来对我来说不是很吸引人......

当然,这两种语言还有很多,所以我正在寻找更多的例子。有人知道我在哪里可以找到一些吗?或者更好的是,在这里发布其他示例?

4

1 回答 1

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。:-)

于 2009-10-17T04:09:22.757 回答