27-07-2010, 05:16 PM
Bonjour,
Ce qu'il faut savoir avec Scala c'est qu'il s'agit d'un langage à la fois procédurale et fonctionnel.
Ici je vais donc présenter son aspect fonctionnel avec les fonctions valeurs.
L'exemple que je vais traiter peut-être encore plus performant et sexy mais nécessite d'aborder d'autres notions de Scala et d'être à l'aise avec les notions syntaxiques Scala et donc je n'en parlerais pas ici.
Prennons donc un cas simple, vous voulez faire une fonction qui calcule la somme de tous les éléments d'un tableau.
En Scala ça donnera donc à peu près ceci :
Ce qu'il faut savoir avec Scala c'est qu'il s'agit d'un langage à la fois procédurale et fonctionnel.
Ici je vais donc présenter son aspect fonctionnel avec les fonctions valeurs.
L'exemple que je vais traiter peut-être encore plus performant et sexy mais nécessite d'aborder d'autres notions de Scala et d'être à l'aise avec les notions syntaxiques Scala et donc je n'en parlerais pas ici.
Prennons donc un cas simple, vous voulez faire une fonction qui calcule la somme de tous les éléments d'un tableau.
En Scala ça donnera donc à peu près ceci :
Code PHP :
<?php
object Main extends Application {
def sumArray(ar : Array[Int]) : Int = {
var sum : Int = 0
for (i <- 0 until ar.length) {
sum += ar(i)
}
sum
}
val myArray = Array(3, 8, 12, 7, 4)
println(sumArray(myArray))
}
Résultat : 34
Code plutôt trivial et semblable aux autres langages, par rapport à ce que je disais plus haut, si on faisait la fonction sumArray en utilisant la puissance de Scala ça donnerait plutôt ça :
Code PHP :
<?php
def sumArray(ar : Array[Int]) : Int = {
ar.foldLeft(0) { _ + _ }
}