Pregunta

he tenido alguna experiencia en Haskell y actualmente está aprendiendo Scala. Pregunto si hay algo equivalente a Mónadas en Scala ??

¿Fue útil?

Solución

Es posible que desee echa un vistazo a scalaz ; que ha sido fuertemente influenciada por Haskell. De hecho, a menudo se ha pedido de uno de los principales contribuyentes por qué no son solo usando Haskell, ya que parece que les gusta tanto!

Scalaz hace un uso intensivo de los implícitos con el fin de decorar estructuras con sus mónadas. Por ejemplo:

val fibs = (0, 1).iterate[Stream]( i => i._2 -> (i._2 + i._1) ).map(_._1)
println( fibs.take(10) )

Otros consejos

Creo que vale la pena señalar que de Scala "para la comprensión" es equivalente a la de Haskell monádica "hacer"

Tanto Opción y la lista son mónadas. También creo que las proyecciones izquierda y derecha, o bien son también mónadas.

No existe el concepto explícito de mónada en la biblioteca estándar de Scala (no hay ningún rasgo / clase o clase de tipos apropiados).

Scala ocupa de esto en clase de una manera ad-hoc, consulte Scala sección de ejemplos 's en para comprensiones para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top