Linguagem Funcional Scala
-
Upload
davi-matos -
Category
Documents
-
view
448 -
download
0
Transcript of Linguagem Funcional Scala
UFERSA – Universidade Federal Rural do Semi-Árido
Davi Matos
*Linguagem Scala
*Programação Funcional• Baseadas em funções matemáticas;
• Alto nível de abstração;
• Não dependência de operações;
• Dados imutáveis;
• Abstração Lambda;
• Redução do código-fonte;
• Maior velocidade;
• Facilita a implementação;
*Programação Funcional• Linguagens mais famosas:• Lisp
• Haskell
• OCaml
• Python
• Scala
*Linguagem Scala• Criada em 2001 por
Martin Odersky;
• Algumas frustrações com Java;
• Melhorar experiência Java;
• Primeiro release público em 2003;
*Linguagem Scala• Paradígma Orientado ao Objeto;
• Paradígma Funcional;
• Roda sobre a JVM;
• Não é uma extensão de Java, pois possui sintaxe e construções próprias;
• Integração com Java e .NET;
*Linguagem Scala
*Linguagem Scala• Declaração de tipo variáveis omitidas;
• Ponto e virgula omitido;
• Operadores são métodos;
*Linguagem Scala• If’s ternários (numa linha só);
• For pode retornar valores;
*Linguagem Scala• Parâmetros de construtores
implícitos;
*Scala no Cenário Funcional• Principal interesse: Resolver o
problema de multicores;
• Imutabilidade;
*Scala no Cenário Funcional• Função de Ordem Superior;
• Funções podem ser passadas e retornadas
*Recursos de Scala • Método Apply para Strings;
• Pré-Condições;
*Recursos de Scala• Traits
• Funcionamento semelhante a Interface
*Recursos de Scala• Pattern Match
• Funcionamento semelhante ao switch
*Ping-Pong Scala
*Ping-Pong Scala• Utilizando bibliotecas Java:
• AWT;
• Swing;
• Plotando elementos
• setPaint();
• fillRect();
• fillOval();
*Ping-Pong Scala• Movimentos
• Bola: Começa no centro e velocidade crescente;
• Barras: Via teclado, teclas UP/DOWN, W/S
• Tratamentos de colisões:
• Bola > barras;
• Bola > bordas;
• Bola saindo da tela