Las funciones lambda son funciones anónimas. Se usan cuando, o bien necesitas una función que sólo vas a usar en un sitio, o quieres devolver una función como resultado de otra.
En cuanto a las mónadas, aparte de ser un concepto matemático raro, es el sistema que usa Haskell para encadenar computaciones (es decir, funciones con una entrada y una salida). Imagina que tienes el siguiente proceso:
+-----+ +-----+ +-----+ x --->| F |--->| G |--->| H |---> y +-----+ +-----+ +-----+
Hay que tener en cuenta que mientras que la ejecución de un lenguaje imperativo es ordenada, la de un lenguaje funcional puro no tiene porqué serlo. Las mónadas sirven para forzar una ejecución lineal, pero además, permiten modificar la manera en la que se encadenan las acciones. Por ejemplo, ¿qué pasa si alguna función devuelve un resultado incorrecto? En un lenguaje imperativo, tendrías que comprobarlo manualmente para cada función (muy pesado), o modificar el compilador para que lo haga por tí (muy difícil). En Haskell, simplemente tienes que modificar la mónada correspondiente. Eso permite a Haskell cosas tan increíbles como poder implementar manejo de excepciones o nuevas estructuras de control mediante funciones.
En fin, si te interesa más el tema, puedes leer http://www.nomaware.com/monads/html, en el que se explica todo muy claramente.
Wiki Prototype-based_programming
(Puntos:4, Informativo)( Última bitácora: Jueves, 27 Julio de 2017, 15:18h )
Prototype-based_programming en la Wikipedia [wikipedia.org]
Que levanten la mano...
(Puntos:1, FueraDeTema)( https://www.linkedin.com/in/luis-gonzalo-soto-aboal-33801815 | Última bitácora: Viernes, 02 Octubre de 2009, 20:51h )
¿Infantil? Tal vez... Uno lee tantas cosas en inglés que ya pierde el horizonte... xD
Re:No sólo en investigación
(Puntos:5, Informativo)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
En cuanto a las mónadas, aparte de ser un concepto matemático raro, es el sistema que usa Haskell para encadenar computaciones (es decir, funciones con una entrada y una salida). Imagina que tienes el siguiente proceso:
+-----+ +-----+ +-----+
x --->| F |--->| G |--->| H |---> y
+-----+ +-----+ +-----+
Hay que tener en cuenta que mientras que la ejecución de un lenguaje imperativo es ordenada, la de un lenguaje funcional puro no tiene porqué serlo. Las mónadas sirven para forzar una ejecución lineal, pero además, permiten modificar la manera en la que se encadenan las acciones. Por ejemplo, ¿qué pasa si alguna función devuelve un resultado incorrecto? En un lenguaje imperativo, tendrías que comprobarlo manualmente para cada función (muy pesado), o modificar el compilador para que lo haga por tí (muy difícil). En Haskell, simplemente tienes que modificar la mónada correspondiente. Eso permite a Haskell cosas tan increíbles como poder implementar manejo de excepciones o nuevas estructuras de control mediante funciones.
En fin, si te interesa más el tema, puedes leer http://www.nomaware.com/monads/html, en el que se explica todo muy claramente.
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!