Scala

Funciones de orden superior y de primera clase

DSL

Pattern Matching

Singleton

Actores

¿Qué significa reactivo?

Inmutabilidad

Funciones

  • Orden superior  Tomar una o más funciones como entrada o Devolver una función como salida.
// Funcion de orden superior
def saySomething(prefix: String) = (s: String) => {
  prefix + " " + s
}

// Funcion de primera clase
val sayHello = saySomething("Hello")
  • Primera clase tratar funciones como valores. 

Inmutabilidad

No cambia su valor una vez declarado el valor.

  • Asignación inmutable
  • Colleciones inmutables
val empty = scala.collection.immutable.Queue[Int]()

val has1 = empty.enqueue(1)


val has123 = has1.enqueue(List(2, 3))

val (element, has23) = has123.dequeue

Pattern Matching

Es el acto de comprobar la constitución de algun patron en usa secuencia de tokens.

  def matchTest(x: Any): Any = x match {
    case 1 => "one"
    case "two" => 2
    case y: Int => "scala.Int"
  }
  println(matchTest("two"))

Singleton

Es el acto de comprobar la constitución de algun patron en usa secuencia de tokens.

object Blah {
  def sum(l: List[Int]): Int = l.sum
}

println(Blah.sum(List(1,2,3)))

DSL

Lenguajes para modelar y realizar tareas de un area especifica.

10 PRINT "Welcome to Baysick Lunar Lander v0.0.1"
20 LET ('dist := 100)
30 LET ('v := 1)
40 LET ('fuel := 1000)
50 LET ('mass := 1000)

60 PRINT "You are a in control of a lunar lander."
70 PRINT "You are drifting towards the surface of the moon."
80 PRINT "Each turn you must decide how much fuel to burn."
90 PRINT "To accelerate enter a positive number, to decelerate a negative"

Modelo de actores

Un actor es una unidad computaciones la cuale en respuesta a un mensaje que recibe, puede concurrentemente:

  • Enviar un numero finito de mensajes a otros actores
  • Crear un numero finito de actores.

  • Designar el comportamiento para el siguiente mensaje que el recibe.

deck

By Miguel Angel Gordian