Scalaz de andar por casa

26
Scalaz de andar por casa by @dvnavarro

Transcript of Scalaz de andar por casa

Page 1: Scalaz de andar por casa

Scalaz de andar por casa

by @dvnavarro

Page 2: Scalaz de andar por casa

Índice

1.¿Qué es Scalaz?2.Monoids3.Type-Class4.Estructura de Scalaz5.Teo crea su primer Monoid

Page 3: Scalaz de andar por casa

1. ¿Qué es Scalaz?¿Para Qué sirve Scalaz?¿Cómo puedo aprender

Scalaz?¿Qué debo saber antes de utilizar Scalaz?

¿Cómo está organizado Scalaz?

Page 4: Scalaz de andar por casa

2. Monoids¿Qué $#&! es un Monoid?

Estructura algebraica con una operación binaria, que es asociativa y tiene elemento neutro, es decir, es un semigrupo con elemento neutro.

Page 5: Scalaz de andar por casa

2. Monoids¿y en cristiano?

Movida que tiene una operación binaria. - Dicha movida tiene un elemento neutro para esa operación.

- Dicha operación cumple la regla de asociatividad.

Page 6: Scalaz de andar por casa

2. Monoids(a + b) + c = a + (b + c)a + 0 = a

(a * b) * c = a * (b * c)a * 1 = a

(“León” + “come”) + “gamba” = “León” + (“come” + “gamba”)“León” + “” = “León”

Page 7: Scalaz de andar por casa

3. Type Class

¿Qué $#&! es una Type Class?

It's a type system construct that supports ad hoc polymorphism

Page 8: Scalaz de andar por casa

3. Type Class

¿lo qué?

Sistema molón que nos permite extender sus funciones a un nuevo tipo sin que

aquello sea un infierno

Page 9: Scalaz de andar por casa

3. Type Class

Page 10: Scalaz de andar por casa

3. Type Class

Page 11: Scalaz de andar por casa

3. Type Class

Page 12: Scalaz de andar por casa

ATENCIÓN!! FEATURE MOLONA DE SCALA!!

3. Type Class

Usando Context Bounds:

Page 13: Scalaz de andar por casa

3. Type Class

COMPILE ERROR!!

could not find implicit value for parameter ev: Math.NumberLike[scala.concurrent.duration.FiniteDuration]

Page 14: Scalaz de andar por casa

3. Type Class

Page 15: Scalaz de andar por casa

3. Type Class

Page 16: Scalaz de andar por casa

4. Estructura de Scalaz

scalaz.Monoid.scala

Definición de Monoid

Page 18: Scalaz de andar por casa

4. Estructura de Scalaz

scalaz.std.Option.scala

Implícitos para el tipo Option y operaciones especiales de

Option que no aparecen en la librería estándar

Page 19: Scalaz de andar por casa

4. Estructura de Scalaz

scalaz.syntax.std.OptionOps.scala

Syntactic Sugar para Option de ScalaZ

Page 20: Scalaz de andar por casa

5. Teo crea su primer Monoid¡HOLA AMIGOS! HOY OS VOY A

ENSEÑAR COMO HACER UN MONOID

Page 21: Scalaz de andar por casa

5. Teo crea su primer Monoid

Page 22: Scalaz de andar por casa

5. Teo crea su primer Monoid

Page 23: Scalaz de andar por casa

5. Teo crea su primer Monoid

Nos tocará definirlo

Page 24: Scalaz de andar por casa

5. Teo crea su primer Monoid

Page 25: Scalaz de andar por casa

5. Teo crea su primer Monoid

Page 26: Scalaz de andar por casa