2009-10-17 21 views
1

J'étudie JavaFX Script et essaye de le comparer à Scala, qui est une autre nouvelle langue très intéressante pour la plate-forme Java.Existe-t-il des exemples de code comparant Scala et JavaFX Script?

Dans le site officiel de Scala, j'ai trouvé this example, qui est une implémentation Quick Sort. J'ai alors écrit le programme équivalent JavaFX Script (en utilisant NetBeans IDE 6.7.1) suivant:

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

Les deux programmes fonctionnels sont très similaires, mais j'aime la version JavaFX mieux. Les parties "_" et ":::" dans la version Scala ne me semblent pas très attrayantes ...

Bien sûr, il y a beaucoup plus dans les deux langues, donc je cherche d'autres exemples. Est-ce que quelqu'un sait où je peux en trouver? Ou encore mieux, poster d'autres exemples ici? Gardez à l'esprit que la syntaxe Scala est flexible.

Répondre

3

Vous auriez pu facilement l'écrire sans le « ::: » et « _ » cette façon:

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

Pour les comparaisons de code, je regarde habituellement à http://rosettacode.org/ Il a plusieurs exemples Scala, mais pas les JavaFX. Si vous êtes loin dans ce projet, prenez le temps d'ajouter du JavaFX à ce site. :-)

+0

Merci, bonne réponse! J'ai imaginé que Scala devrait également fournir des variables nommées au lieu de la valeur par défaut "_"; à la fin, le code est très proche de JavaFX Script. (Je suppose que ces langages sont vraiment l'avenir de la JVM.) Je verrais à propos de contribuer du code à ce site. –

+0

J'ai apporté le premier exemple de script JavaFX à Rosetta Code: http://rosettacode.org/wiki/Simple_Windowed_Application#JavaFX_Script. –