¿Alguien puede dar un ejemplo del uso de scalaz Monad para una tarea simple pero no trivial y prácticamente útil?Ejemplo de uso de Scalaz Monad
7
A
Respuesta
16
scalaz.Monad
, y la familia de clases de tipos relacionados, resumen algunas funcionalidades comunes en una gran variedad de tipos. Scalaz proporciona funciones de propósito general que funcionan para cualquieraMonad
; y puedes escribir tus propias funciones de la misma manera.
Sin esta abstracción, se ve obligado a escribir estas funciones para cada nuevo tipo monádico que encuentre, p. Ej. List
, Parser
, Option
. ¡Esto se vuelve tedioso!
Aquí hay ejemplos de algunas funciones proporcionadas, trabajando con un par de tipos monádicos. Mi favorito es sequence
:
scala> 1.pure[Option].pure[Option]
res1: Option[Option[Int]] = Some(Some(1))
scala> res1.join
res2: Option[Int] = Some(1)
scala> List(1.some, 2.some).sequence
res3: Option[List[Int]] = Some(List(1, 2))
scala> List(1.some, none[Int]).sequence
res4: Option[List[Int]] = None
scala> List(1.pure[Function0])
res5: List[() => Int] = List(<function0>)
scala> res5.sequence
res6:() => List[Int] = <function0>
scala> res6()
res7: List[Int] = List(1)
scala> true.some ifM(none[Int], 1.some)
res8: Option[Int] = None
scala> false.some ifM(none[Int], 1.some)
res9: Option[Int] = Some(1)
Cuestiones relacionadas
- 1. Traverse_ de Scalaz con IO monad
- 2. Ejemplo de una gran pila de Monad
- 3. Uso de Reader Monad para Dependency Injection
- 4. Ejemplo de proyectos de código abierto que utilizan scalaz
- 5. Haskell IO Monad y uso de memoria
- 6. Ayúdeme a entender este código de Scala: Scalaz IO Monad e implica
- 7. Scalaz: solicitud de uso para la composición de Cokleisli
- 8. lector Mónada con Scalaz
- 9. Scalaz validación
- 10. Ejemplo de uso de SetupDiGetDeviceProperty
- 11. Ejemplo de uso de TLoginCredentialService
- 12. Pregunta de Scalaz Kleisli
- 13. Componer validaciones de Scalaz
- 14. IO dentro de Get Monad
- 15. list monad transformer
- 16. Ejemplos de mónada de estado de Scalaz
- 17. ejemplo de uso de scala.collection.immutable.Set de java
- 18. rasgo Monad en Scala
- 19. Ejemplo de uso de boost :: condición :: timed_wait
- 20. Ejemplo de uso de hipervínculo en WPF
- 21. Ejemplo de uso de assert en Python?
- 22. Ejemplo de Android uso de RtpStream
- 23. Ejemplo de uso de BLOB en SQLAlchemy
- 24. Ejemplo de uso de MSCHART en C#
- 25. Ejemplo de Comonad en Scala
- 26. Composable using scalaz Arrow?
- 27. Scalaz Lens Composición
- 28. parámetro implícito en Scalaz
- 29. django-ajax-selecciona el uso de ejemplo
- 30. Uso simple de IEnumerator (por ejemplo)