micro-introducción a la programacion funcional
DESCRIPTION
Micro-Introduction to Functional Programming, a conceptual approach to what does means Functional Programming and how it is used and implemented in various languages.TRANSCRIPT
![Page 1: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/1.jpg)
Programacion Funcional
λ
Micro-Introduccion
a la
Programacion
Funcional
λ
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 1 / 9
![Page 2: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/2.jpg)
Programacion Funcional
Daniel Molina Wegener
http://coder.cl/
@damowe en twitter
Copyright c© 2011 Daniel Molina Wegener
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 2 / 9
![Page 3: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/3.jpg)
Tabla de Contenidos
1 Caracterısticas
2 Generalidades
3 Aspectos Teoricos
4 Implementacion
5 Abstracciones
6 ¿FIN?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 3 / 9
![Page 4: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/4.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 5: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/5.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
¿Puede asignar una funcion a una variable?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 6: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/6.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
¿Puede asignar una funcion a una variable?
¿Puede pasar funciones como parametros?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 7: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/7.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
¿Puede asignar una funcion a una variable?
¿Puede pasar funciones como parametros?
¿Tiene funciones anonimas?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 8: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/8.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
¿Puede asignar una funcion a una variable?
¿Puede pasar funciones como parametros?
¿Tiene funciones anonimas?
¿Soporta recursividad?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 9: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/9.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
¿Puede asignar una funcion a una variable?
¿Puede pasar funciones como parametros?
¿Tiene funciones anonimas?
¿Soporta recursividad?
¿Tiene Clases de Tipo (Funcional)?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 10: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/10.jpg)
Caracterısticas
Caracterısticas
¿Como se diferencian los lenguajes funcionales?
¿Puede retornar una funcion?
¿Puede asignar una funcion a una variable?
¿Puede pasar funciones como parametros?
¿Tiene funciones anonimas?
¿Soporta recursividad?
¿Tiene Clases de Tipo (Funcional)?
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 4 / 9
![Page 11: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/11.jpg)
Generalidades
Generalidades
Fuerte Base Teorica
Calculo Lambda, Combinatoria, Reducciones FormalesTeorıa de Categorıas y Sistemas de TiposEntre otros...
Funciones como Abstraccion
Funciones como habitantes de Primera ClaseFunciones de Alto OrdenClosures, Monoids, Functors y Monads
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 5 / 9
![Page 12: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/12.jpg)
Generalidades
Generalidades
Fuerte Base Teorica
Calculo Lambda, Combinatoria, Reducciones FormalesTeorıa de Categorıas y Sistemas de TiposEntre otros...
Funciones como Abstraccion
Funciones como habitantes de Primera ClaseFunciones de Alto OrdenClosures, Monoids, Functors y Monads
El conflicto de la Pureza
I/O y Datos Externos
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 5 / 9
![Page 13: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/13.jpg)
Generalidades
Generalidades
Fuerte Base Teorica
Calculo Lambda, Combinatoria, Reducciones FormalesTeorıa de Categorıas y Sistemas de TiposEntre otros...
Funciones como Abstraccion
Funciones como habitantes de Primera ClaseFunciones de Alto OrdenClosures, Monoids, Functors y Monads
El conflicto de la Pureza
I/O y Datos Externos
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 5 / 9
![Page 14: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/14.jpg)
Aspectos Teoricos
Aspectos Teoricos
Metodos Formales, contribucion de Alonzo Church
Calculo LambdaTesis Church-Turing (computabilidad)
Metodos Formales
Reducciones FormalesVerificacion Logica
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 6 / 9
![Page 15: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/15.jpg)
Aspectos Teoricos
Aspectos Teoricos
Metodos Formales, contribucion de Alonzo Church
Calculo LambdaTesis Church-Turing (computabilidad)
Metodos Formales
Reducciones FormalesVerificacion Logica
Ejemplos de Combinadores Conocidos
I = λx .x (identity)T = λxy .x (true)F = λxy .y (false)S = λxyz .xz(yz) (successor)Y = λf .(λx .f (xx))(λx .f (xx))) (y-combinator)
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 6 / 9
![Page 16: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/16.jpg)
Aspectos Teoricos
Aspectos Teoricos
Metodos Formales, contribucion de Alonzo Church
Calculo LambdaTesis Church-Turing (computabilidad)
Metodos Formales
Reducciones FormalesVerificacion Logica
Ejemplos de Combinadores Conocidos
I = λx .x (identity)T = λxy .x (true)F = λxy .y (false)S = λxyz .xz(yz) (successor)Y = λf .(λx .f (xx))(λx .f (xx))) (y-combinator)
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 6 / 9
![Page 17: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/17.jpg)
Implementacion
Implementacion
Abstracciones
FuncionFuncion AnonimaClosureMonoidFunctorMonad
Tipificacion
Calculo Lambda TipificadoSistemas de TiposTeorıa de Categorias
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 7 / 9
![Page 18: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/18.jpg)
Implementacion
Implementacion
Abstracciones
FuncionFuncion AnonimaClosureMonoidFunctorMonad
Tipificacion
Calculo Lambda TipificadoSistemas de TiposTeorıa de Categorias
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 7 / 9
![Page 19: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/19.jpg)
Abstracciones
Abstracciones
Funcion
Como evaluacion de una expresion
Funcion Anonima
Habitante de primera clase, con el mismo tratamiento
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 8 / 9
![Page 20: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/20.jpg)
Abstracciones
Abstracciones
Funcion
Como evaluacion de una expresion
Funcion Anonima
Habitante de primera clase, con el mismo tratamiento
Closure
Funcion con Datos (opuesto a Objeto, datos con funciones)
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 8 / 9
![Page 21: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/21.jpg)
Abstracciones
Abstracciones
Funcion
Como evaluacion de una expresion
Funcion Anonima
Habitante de primera clase, con el mismo tratamiento
Closure
Funcion con Datos (opuesto a Objeto, datos con funciones)
Monoid
Abstraccion de Operador (aplicado a elementos de un tipo)
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 8 / 9
![Page 22: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/22.jpg)
Abstracciones
Abstracciones
Funcion
Como evaluacion de una expresion
Funcion Anonima
Habitante de primera clase, con el mismo tratamiento
Closure
Funcion con Datos (opuesto a Objeto, datos con funciones)
Monoid
Abstraccion de Operador (aplicado a elementos de un tipo)
Functor
Funcion Aplicada a un Tipo
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 8 / 9
![Page 23: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/23.jpg)
Abstracciones
Abstracciones
Funcion
Como evaluacion de una expresion
Funcion Anonima
Habitante de primera clase, con el mismo tratamiento
Closure
Funcion con Datos (opuesto a Objeto, datos con funciones)
Monoid
Abstraccion de Operador (aplicado a elementos de un tipo)
Functor
Funcion Aplicada a un Tipo
Monad
Cadena de Functors aplicados a un Tipo
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 8 / 9
![Page 24: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/24.jpg)
Abstracciones
Abstracciones
Funcion
Como evaluacion de una expresion
Funcion Anonima
Habitante de primera clase, con el mismo tratamiento
Closure
Funcion con Datos (opuesto a Objeto, datos con funciones)
Monoid
Abstraccion de Operador (aplicado a elementos de un tipo)
Functor
Funcion Aplicada a un Tipo
Monad
Cadena de Functors aplicados a un Tipo
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 8 / 9
![Page 25: Micro-Introducción a la Programacion Funcional](https://reader038.vdocuments.mx/reader038/viewer/2022103018/559763791a28abfb778b47ff/html5/thumbnails/25.jpg)
¿FIN?
¿FIN?
Preparado con LATEXCompilado el 24 de julio de 2011
Coyright c© 2011 Daniel Molina Wegener
Daniel Molina Wegener (coder.cl) Programacion Funcional 24 de julio de 2011 9 / 9