¿Por qué programación funcional?
- Principios de razonamiento simples
- Mejor modularidad
- Bueno para explotar paralelismo para multinúcleos y computación en la nube
Funciones
Una función es una definición que puede contener parámetros, por ejemplo:
// Función que regresa el cuadrado de un número:
// Declaración:
def cuadrado(n: Double) = n * n //> cuadrado: (n: Double)Double
// Uso y resultado:
cuadrado(10) //> res2: Double = 100.0
En el ejemplo anterior, la función regresa el resultado en la misma línea, en caso de requerir alguna construcción más compleja, se puede definir un bloque, por ejemplo:
// Función que regresa el mayor de dos números
// Declaración:
def mayor(n1: Int, n2: Int) = {
if (n1 > n2)
n1
else
n2
} //> mayor: (n1: Int, n2: Int)Int
// Uso y resultado:
mayor(12,9) //> res3: Int = 12
Los tipos de datos se pueden encontrar en: http://www.tutorialspoint.com/scala/scala_data_types.htm
Estoy terminando el curso FunProg de Scala en Coursera y todo el tema de tener funciones b50 como ciudadanos de primer nivel es un gran avance. Es un lenguaje muy potente y conciso, y lo unico que lamento es tener que volver cada ma;ana a Java en mi empresa.