No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Curso de Scala b√°sico

Curso de Scala b√°sico

Carlos Daniel Sanchez

Carlos Daniel Sanchez

Razonamiento con tipos

18/36
Recursos

Aportes 6

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

¬ŅQu√© diferencia hay entre Class y Case Class?

Razonamiento con tipos

Tipados vs. Din√°micos

Los tipos de datos son muy importantes al momento de crear sistemas que escalen. Los tipos mantienen la consistencia de un sistema, y se vuelven una manera de probarlo.

Sistema de tipos

Los tipos son una parte crítica para hacer abstracciones. Se vuelven una manera de documentar las posibilidades que tenemos. Scala, a diferencia de Java, tiene un sistema de tipos mucho más potente y flexible.

El legado de ML

ML (Meta language) es un lenguaje de programación académico que ha influenciado muchos lenguajes funcionales modernos.

Proposiciones y pruebas

  • Los tipos, son proposiciones.
  • Los programas, son pruebas.

Nuestros programas son como una gran función matemática. El compilador se convierte en un razonador que prueba nuestro software con base en las proposiciones que le damos.

Tipos vs String

Es un error usar Strings en vez de tipos, ya que el compilador no puede probar nada cuando hay cambios.

Definición de tipos en Scala

  • Class
  • Case Class
  • Trait
  • Type alias
  • Generics
type PersonaId = Int
// defined type alias PersonaId

case class Persona(id: PersonaId, nombre:String)
// defined class Persona

type Estudiante = Persona
// defined type alias Estudiante

new Estudiante(1, "Daniel")
// res: Persona = Persona(1,Daniel)

Hice una función para derivar otras funciones, aunque no parece muy precisa.

El rasonamiento por tipos va ser muy usado y puede ser muy abastracto

El compilador nos ayuda buscar proposiciones si son faltas o verdades lo cual, es capza de detectar ese sentido

El sistema de tipados en scala, nos ayuda en la documentacion estructurada, con un lenguaje Metalanguage, es muy potente y flexible.