Curioso que muy pocas personas se interesen por este curso.
Introducción a Scala y configuración del entorno de desarrollo
Introducción al curso y presentación de los objetivos
Scala en la historia
Instalando JVM, SBT y editores
Instalación de las herramientas
¡Hola, Mundo!
Fundamentos de Programación Funcional
Tipos de datos básicos
Inmutabilidad
Expresiones
Funciones
Colecciones: Secuencias, Conjuntos y Mapas
Tuplas y Objetos
La función de copy y el concepto de Lences
Conceptos básicos de Programación Funcional
Pattern Matching
Tail recursion
Agregación
Fundamentos teoricos
Funciones totales y parciales
Razonamiento inductivo
Razonamiento con tipos
Traits
Tipos genéricos
Tipos de datos algebraicos
Evaluación peresoza (Lazy)
Disyunciones: Option
Disyunciones: Either, try
Proyecto de Backend
Introducción e iniciación del proyecto
Modelo por Actores
Modelo de datos
Configuración de Slick
Controladores: Cómo obtener información de la base de datos
Controladores: Crear, actualizar y eliminar información de la base de datos
Computación paralela, asÃncrona y concurrente
Serialización
Validación
Manejo de errores en el proyecto
Exportación del proyecto
Conclusiones
Clase final
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Carlos Daniel Sanchez
Aportes 3
Preguntas 1
Curioso que muy pocas personas se interesen por este curso.
¿Cómo agrupar distintos tipos de datos en uno? Una lista no funcionará como esperamos (perdemos el tipo de dato). Las tuplas son una estructura de datos flexible y potente para agrupar datos
En Scala tenemos una manera de definir clases cuyo objetivo es agrupar información. Programar de forma funcional implica separar los datos, de las operaciones sobre esos datos.
Una clase en OOP tendrá atributos y métodos juntos
En FP hay clases que contienen únicamente atributos, y habrá otras clases únicamente con operaciones
val tupla = (1, "Daniel", false)
// tupla: (Int,, String, Boolean) = 1, Daniel, false)
case class Persona(id:Int, nombre: String, activo: Boolean)
//defined class Persona
val p = Persona(1, "Daniel", true)
// p: Persona(1, "Daniel", true)
tupla._
// _1 _2 _3
tupla._1
// res2: Int = 1
tupla._2
// res2: String = Daniel
tupla._3
// res2: Boolean = false
p.id
//res4: Int = 1
p.nombre
//res4: String = Daniel
p.activo
//res4: Boolean = true
Persona.tupled(tupla)
// res12: Persona = Persona(1,Daniel,false)
Persona.unapply(p)
//res: Option[(Int,String,Boolean)] = Some((1,Daniel,true))
Estuvo genial la relaciona que hay entre tupla y objetos. Normalmente no se las relaciona, primer lenguaje que veo que si lo hacen, estuvo chévere.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?