2009-10-17 5 views
1

나는 JavaFX 스크립트를 연구 중이며 이것을 Java 플랫폼의 또 다른 매우 흥미로운 새로운 언어 인 Scala와 비교하려고합니다.Scala와 JavaFX Script를 비교하는 코드 예제가 있습니까?

공식 스칼라 사이트에서 나는 빠른 정렬 구현 인 this example을 발견했습니다.

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)); 
} 

두 기능 프로그램은 매우 유사하지만 나는 자바 FX 버전을 더 좋아 : 나는 다음 (넷빈즈에게 IDE 6.7.1을 사용하여) 다음 해당하는 자바 FX 스크립트 프로그램을 썼습니다. 스칼라 버전의 "_"및 ":::"부분은별로 매력적이지 않습니다 ...

물론 두 언어에 더 많은 것이 있으므로 더 많은 예제를 찾고 있습니다. 어디서 찾을 수 있는지 아는 사람이 있습니까? 아니면 다른 예를 게시 하시겠습니까?

답변

3

스칼라 구문은 유연합니다. 당신은 쉽게 ":::"와 "_"이 방법없이 작성 수 :

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/ 그것은 여러 스칼라 예제를 가지고 ,하지만 자바 FX 것 봐. 이 프로젝트를 진행하는 데 시간이 걸릴 경우 JavaFX를 해당 사이트에 추가하십시오. :-)

+0

고맙습니다. 훌륭한 답변입니다. 스칼라는 디폴트 "_"대신 명명 된 변수를 제공해야한다고 생각했다. 결국이 코드는 JavaFX Script와 매우 비슷합니다. (나는이 언어들이 실제로 JVM의 미래라고 생각한다.) 나는 그 사이트에 약간의 코드를 기여하는 것에 대해 알게 될 것이다. –

+0

첫 번째 JavaFX 스크립트 예제를 Rosetta Code : http://rosettacode.org/wiki/Simple_Windowed_Application#JavaFX_Script에 제공했습니다. –