Diferencia entre revisiones de «Programación funcional»

Contenido eliminado Contenido añadido
Zuseth (discusión · contribs.)
Sin resumen de edición
Etiquetas: Edición desde móvil Edición vía web móvil
Zuseth (discusión · contribs.)
Sin resumen de edición
Etiquetas: Edición desde móvil Edición vía web móvil
Línea 97:
El lenguaje de programación funcional [[Haskell]] lo implementa usando mónadas, estructura que representa cálculos que se describen como una secuencia de pasos, derivada de la teoría de categorías.
 
Las [[Mónada (teoría de categorías)|mónadas]] ofrecen una forma de abstraer ciertos tipos de patrones computacionales, incluyendo (pero no limitado a) el diseño de operaciones con estados cambiantes (y otras acciones secundarias tales como entrada/salida de datos) de una manera imperativa sin perder la pureza. Mientras las mónadas existentes pueden ser fáciles de aplicar en un programa usando las plantillas y ejemplos adecuados, muchos estudiantes tienen problemas para entenderlo conceptualmente, por ejemplo cuando se les pide definir nuevas mónadas. (lo que a veces resulta necesario para ciertos tipos de librerías).<ref>{{cita web|url=http://monads.haskell.cz/html/index.html/html/|título=All About Monads: A comprehensive guide to the theory and practice of monadic programming in Haskell|fechaacceso=14 de febrero de 2008|apellido=Newbern|nombre=J.}}</ref>
 
Otra forma en la que los lenguajes funcionales pueden simular estados es rodeando una estructura de datos que representa el estado actual como un parámetro para llamadas a funciones. En cada llamada a función, se crea una copia de esta estructura de datos que se diferencia con el resultado de la función. Esto se conoce como “estilo de paso de estado”.