Scala, un lenguaje de JVM y .Net

Scala es un lenguaje de programación multi-paradigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros. Integra sutilmente características de lenguajes funcionales y orientados a objetos. La implementación actual corre en la máquina virtual de Java y es compatible con las aplicaciones Java existentes(Fuente), agregan en Scala que también es compatible con .Net.
Scala entre otras bondades, sus programas pueden ser interpretados o compilados, para este ejemplo vamos a trabajar con el interprete.
Como Scala es un lenguaje funcional lo cual nos permite crear funciones y estas son un objeto. Vamos a definir una función multiplicar, cuando comienza con scala> significa que se está trabajando en el intérprete:
scala> def multiplicar(x: Int, y: Int): Int = x*y
scala> multiplicar(2,4)
res1: Int = 8
Esto significa que se ha creado una referencia al resultado de la operación llamado res1 el cual no puede variar su contenido su modificador es val.
En Scala podemos crear funciones anónimas, esto es una función que no tiene nombre y que puede ser asignada a una referencia o pasada por parámetro a otra función. Lo cual deja nuestra definición enterior en los siguientes terminos.
scala> val multiplica = (x: Int, y: Int) => x * y
a partir de este momento ya podemos usar la referencia multiplica de la forma:
scala> println(multiplica(2,4))
Acá solo imprime el valor, no como en el ejemplo anterior que imprimía su referencia también.
A veces necesitamos funciones parciales, lo que quiere decir que podemos crear una referencia a una función cuyos parámetros sean establecidos a medias o como su nombre indica parcialmente:
scala> val tabla2 = multiplica(2, _:Int)
El primer parámetro es inicializado con 2 y el segundo no se le asignó nada, el _ significa que es un parámetro sin establecer de tipo Int.
Por último vamos a escribir la tabla del 2
scala> for(i<-0 until11){
 |println("2 * " + i + " = "+ tabla2(i))
 |}
}
Los | son escritos por el intérprete lo que quiere decir que no se deben escribir de lo contrario genera error. La salida de la ejecución de esas definiciones, se ejecuta justo cuando se escribe el ultimo } es:
2*0=0
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
2*10=20.

Posted by Gabriel Jaime Sierra Rua | en 12:46

0 comentarios: