Académique Documents
Professionnel Documents
Culture Documents
Referencias
Programming in Scala. Martin Odersky, Lex Spoon, Bil Venners. Ed. Artima.
Programming Scala. Dean Wampler, Alex Payne. Ed. O'Reilly.
Scala by Example. Martin Odersky. November 2010.
A Scala Tutorial for Java programmers. Michel Schinz, Philipp Haller.
November 2010.
The Scala Language Specification. Martin Odersky. November 2010.
Unificacin de PF y POO
Programacin funcional: hace fcil desarrollar cosas interesantes desde
partes sencillas, usando:
funciones de orden superior
tipos algebraicos y pattern matching
polimorfismo paramtrico
Programacin orientada a objetos: hace fcil adaptar y extender sistemas
complejos, usando:
especializacin (subclases) y herencia
configuraciones dinmicas
clases como abstracciones parciales
martes 5 de abril de 2011
Diseo de Scala
Lenguaje moderno que satisface las necesidades ms importantes de los
desarrolladores actuales
Completamente compatible con Java
Modelo de objetos uniforme
Pattern matching
Funciones de orden superior
Nuevas formas para abstraer y componer programas
Caractersticas de Scala
Estticamente tipeado, con caractersticas de scripting porque en muchas
ocasiones el compilador realiza una inferencia de tipos
Interoperabilidad: encaja perfectamente en un entorno Java.
Conciso
// Java
class MyClass{
private int index;
private String name;
public MyClass(int index, String name){
this.index = index;
this.name = name;
}
}
// Scala
class MyClass(index: Int, name: String)
Scala utiliza la PF
Un par de ejemplos con funciones de orden superior:
//Java
boolean nameHasUpperCase = false;
for (int i=0; i<name.length(); ++i){
if(Character.isUpperCase(name.charAt(i))){
nameHasUpperCase = true;
break;
}
}
//Scala
val nameHasUpperCase = name.exists(_.isUpperCase)
Scala utiliza la PF
scala> val matrix = Array(Array(1, 0, 0),
Array(0, 1, 0),
Array(0, 0, 1))
matrix: Array[Array[Int]] = Array ([I@164da25,...
scala> matrix.exists(row => row.forall(0 ==))
res13: Boolean = false