Um pouco de diversão com Scala

[Novo endereço: leandrosilva.com.br.]

Scala é uma linguagem de programação muito flexivel, que possibilita conceber construções extremamente sofisticadas, o que facilita bastante a criação de DSLs. Ela combina dois poderosos paradigmas: Programação Orientada a Objetos e Programação Funcional. Tudo em Scala é um objeto, inclusive, funções. Ela não é a única que faz isso, mas vem ganhando aplausos pelo seu design sofisticado. Na verdade, Scala foi inspirada em muitas linguagens – Java, C++, Smalltalk, Eiffel, OCaml, F#, Haskell, Erlang.

Scala também possui um ótimo modelo de programação concorrente, inspirado nos poderosos atores de Erlang.

Não bastasse tudo isso, Scala é open source e possui implementações para a plataforma Java e .NET.

Uma das coisas que mais gosto em Scala é sua natureza funcional. Não que eu seja um mestre da programação funcional. Mas este é um paradigma que tenho aprendido a apreciar bastante.

Sobre esse extenso assunto, quero fazer uma pequenina citação a “funções”.

Uma função em Scala é um first-class value. Como qualquer outro valor, uma função pode ser passada por parâmetro para outra função, bem como ser retornada como resultado. Funções que recebem outras funções como parâmetro ou retornam como resultado são chamadas de higher-order function. Isso dá um flexibilidade impressionante!

Um exemplo?

object Calculo {
  def soma(func: Int => Int, a: Int, b: Int): Int =
    if (a == 0 || b == 0) func(10) else a + b

  def main(args: Array[String]) {
    println("Ex1: " + soma((x: Int) => x + 100, 0, 0))
    println("Ex2: " + soma((x: Int) => x + 100, 10, 20))
  }
}

Este é um programinha bastante simples. O que ele faz é criar um objeto Calculo, que funciona como uma instância singleton, e executá-o a partir do método main – semelhantemente ao que acontece em Java.

Além do método main, lá está nossa função soma. Ela é uma função simples de soma. Bem, não tão simples assim. Ela recebe uma função anonima por parâmetro (func) e, caso a ou b seja zero, ela a usa passando 10 como parâmetro.

Se quiser rodar este programinha e ver o resultado de sua execução, basta:

1- Instalar a versão de Scala para seu SO;
2- Salvar esse código em um arquivo Calculo.scala;
3- Compilar esse arquivo com scalac Calculo.scala;
4- Executar com scala Calculo.

Scala é uma linguagem fantástica. Quando mais a conheço, mais a aprecio!

4 Respostas para “Um pouco de diversão com Scala

  1. Fala Leandro blz??

    Legal a introdução a Scala. Estou estudando Erlang, o paradigma é bem diferente com o que a gente está acostumado, mas é bem bacana o quão grande poder a linguagem lhe traz..

    Em breve escreverei um post sobre Erlang em conjunto com Ruby.

    []s

  2. Blz!!!

    Cara, o Ola Bini escreveu um post legal sobre isso:

    http://ola-bini.blogspot.com/2008/04/connecting-languages-or-polyglot.html

    Qualquer hora dessas vou me aventurar em Erlang também… hehehe

  3. JavaScript tb permite essa flexibilidade de programação funcional.

  4. Pingback: Mais diversão com Scala « CØdeZØne!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s