Cadastre-se

Comece agora a utilizar o MoIP em seus projetos.

A Linguagem de Programação Scala

por
Scala é uma linguagem de programação de multiparadigma, projetada para funcionar
nos modelos Orientado a Objeto, Imperativa e Funcional. Criada por Martin Odersky
em 2003, Licença BSD, também é plenamente interoperável com Java. O pré-requisito
para o uso do Scala é a JDK versão 1.4 ou superior. A instalação do Scala por ser
vista em http://www.scala-lang.org/node/211.
Agora, com o Scala instalado vamos mostrar o seu interpretador:
$ scala
Welcome to Scala version 2.9.1.r0-b20110831114755 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 3 * 3
res0: Int = 9

scala>
Repare que ele é bem parecido com o interpretador de outras linguagens de
programação, por exemplo, Python. Observe também que na execução acima o
resultado da expressão foi armazenado na variável res0 com o valor 9 do tipo
inteiro. Então, podemos aproveitar o resultado para mais interações:
scala> res0 * 9
res1: Int = 81
Agora, caso tenha interesse em salvar o resultado em uma variável com um nome
específico basta fazer:
scala> val resultado = res0 * res1
resultado: Int = 729
Agora, vamos criar um primeiro código em Scala, exemplo ola_mundo.scala:
val msg = "Ola mundo!"
println(msg)
Para executar o código:
$ scala ola_mundo.scala
Ola mundo!
$
Reparem que se forem verificar o tipo da variável msg no interpretador o retorno
será java.lang.String, isso mostra o porque de Scala ser altamente interoperativa
com o Java.
Porém, caso não tenha interesse em usar a classe String do Java o Scala tem a sua
própria implementação:
scala>val str_scala: String = "string em scala"
str_scala: String = string em scala

scala>println(str_scala)
string em scala
Então, sabendo como declarar variáveis e operações básica de matemática podemos
ver como definir uma função:
def max2(x: Int, y: Int) = if (x < y) y else x

val x = 13
val y = 45

println(max2(x, y))
Agora, execute e confira o resultado:
$ scala max2.scala
45
Repare que a sintaxe para declarar uma função é bem simples:
def <nome da função>(parâmetros) = <corpo da função>
Os parâmetros devem ser separados por vírgula e com o seguinte formato: <nome>: tipo.
Trabalhando com loops usando while:
var i = 0
while (i < args.length) {
    println(args(i))
    i += 1
}
Repare que o contador i nesse exemplo foi declarado com var e não val pois nesse
caso o valor de i será modificado durante o script por isso essa necessidade de
modificação na declaração.
No exemplo acima serão impressos todos os argumentos passados na chamada de
execução do script em Scala:
$ scala loop.scala 1 2 3 4 5 6
1
2
3
4
5
6
Assim como no Java, PHP e outras linguagens de programação o Scala tem o um recurso
muito útil para interação, veja o exemplo anterior usando esse recurso:
args.foreach(arg => println(arg))
Outros tipos de dados mais interessantes também são implementados em Scala e funções
mais elaboradas podem ser criadas, veja o exemplo do algoritmo de ordenação Quick
Sort abaixo:
def qsort: List[Int] => List[Int] = {
    case Nil => Nil
    case pivot :: tail =>
        val (smaller, rest) = tail.partition(_ < pivot)
        qsort(smaller) ::: pivot :: qsort(rest)
}

var l = List(99, 3, 23, 43, 5, 54, 56)

for (i <- qsort(l))
println(i)
Com esse artigo mostra-se como é fácil programar em Scala e a semelhaça dela
com o Java.
Outra justificativa pelo estudo da linguagem são os seus cases de uso como,
por exemplo, Twitter, LinkedIn, Novell, FourSquare e outros.

Ver outros Posts
  • Anonymous

    Scala escala? rss
    Não resisti à piadinha… rs