Escolar Documentos
Profissional Documentos
Cultura Documentos
Subdireccin Acadmica
Departamento de Sistemas y Computacin
CONTENIDO
Introduccin ....................................................................................................................................................... 2
Objetivos ............................................................................................................................................................ 2
Ventajas y Desventajas ....................................................................................................................................... 2
Ventajas .......................................................................................................................................................... 2
Desventajas ..................................................................................................................................................... 2
Marco Terico .................................................................................................................................................... 3
Funciones Simples .......................................................................................................................................... 3
Formas Funcionales (funciones de mayor orden) ........................................................................................... 3
Composicin ............................................................................................................................................... 3
Construccin ............................................................................................................................................... 4
Aplicar a todo ............................................................................................................................................. 4
Evaluacin Recursiva ..................................................................................................................................... 4
Evaluacin Perezosa ....................................................................................................................................... 4
Estrategias de programacin perezosa ........................................................................................................ 5
Conclusiones ...................................................................................................................................................... 5
Bibliografa......................................................................................................................................................... 5
INTRODUCCIN
Una Estrategia de evaluacin es un conjunto de reglas para evaluar expresiones en un
lenguaje de programacin.
Una estrategia de evaluacin define cundo y en qu orden se evalan los argumentos a una
funcin, cuando est sustituido en la funcin, y lo que la forma de reemplazo.
OBJETIVOS
El paradigma de la programacin funcional es uno de los fundamental entre la llamada
programacin declarativa. Como tal, le permite reunir a los componentes de la
especificacin y la programacin de las tareas de solucin automtica de problemas. Los
lenguajes funcionales ofrecen al desarrollador un buen nmero de recursos expresivos que
permitan resolver problemas complejos a travs de programas pequeos y robustos.
Los lenguajes funcionales ofrecen al desarrollador un buen nmero de recursos expresivos
que pueden ser utilizados para resolver problemas complejos a travs de pequeos
programas y robusto.
Un sistema de tipo polimrfico que permite definir una amplia variedad de
estructuras de datos para su uso genrico.
La capacidad de definir funciones que aceptan otras funciones como argumentos y
devolver funciones como resultado
Instalaciones para definir y manipular estructuras de datos infinitas.
Un simple modelo computacional, clara y bien fundada
VENTAJAS Y DESVENTAJAS
VENTAJAS
DESVENTAJAS
La principal es que es tardado (o perezoso). Muchos de los problemas del mundo
real requieren una evaluacin rigurosa.
Quedarse corto en la portabilidad, las riquezas de las bibliotecas, los interfaces con
otros lenguajes y herramientas de depuracin
MARCO TERICO
FUNCIONES SIMPLES
Las funciones puramente funcionales (o expresiones) no tienen efectos secundarios
(memoria o E/S). Esto significa que las funciones puras tienen varias propiedades tiles,
muchas de las cuales pueden ser utilizados para optimizar el cdigo:
(f o g)(x) = f(g(x))
CONSTRUCCIN
[g,h,i](x) = (g(x),h(x),i(x))
APLICAR A TODO
(j,(x,y,z)) = (j(x),j(y),j(z))
EVALUACIN RECURSIVA
Una funcin recursiva es aquella que contiene en el bloque de instrucciones que la definen
una llamada a la propia funcin. En matemticas tambin se usan definiciones recursivas y,
tanto en un caso como en otro, hay que tener cuidado para estar seguro de que la definicin
es consistente:
1. La funcin debe poder calcularse directamente en uno o ms de los posibles casos
de uso. Estos casos se llaman casos base.
2. La llamada a la funcin con unos argumentos que no son casos base debe depender
del valor de la funcin en otros argumentos distintos, que deben estar ms cercanos
a los casos base en algn sentido. Esta regla no es muy precisa, pero no se puede dar
una receta general, como veremos.
Como ejemplo, escribimos una implementacin recursiva de la funcin factorial, que se
basa en la definicin recursiva:
0!=1
n!=n*(n-1)! si n>0
EVALUACIN PEREZOSA
En la teora de lenguajes de programacin, La evaluacin perezosa (del ingls lazy
evaluation) o llamada por necesidad es una estrategia de evaluacin que retrasa el clculo
de una expresin hasta que su valor sea necesario, y que tambin evita repetir la evaluacin
en caso de ser necesaria en posteriores ocasiones. Esta comparticin del clculo puede
reducir el tiempo de ejecucin de ciertas funciones de forma exponencial, comparado con
otros tipos de evaluacin.
Los beneficios de la evaluacin perezosa son:
Mult (1+2,2+3)
= mult (3,5) [por def. de +]
= 3*5 [por def. de mult]
=15 [por def. de *]
Mult (1+2,2+3)
= (1+2)*(3+5) [por def.de mult]
=3*5 [por def. de +]
CONCLUSIONES
Learning new languages , especially in paradigms with which we are less familiar can
teach us a lot about programming in general. This learning process will make us better
programmers, and many of these lessons are applicable to all languages we know , not only
to end up similar languages to learn. In particular , functional languages are sufficiently
similar to accessible and more popular as many useful lessons to teach languages.
BIBLIOGRAFA
[1] http://prezi.com/fngyi7h8u570/evaluacion-perezosa/
[2] http://prezi.com/lhnyd5gqlj_-/unidad-3-evaliacion-perezosa/
[3] https://www.uam.es/personal_pdi/ciencias/pangulo/doc/laboratorio/b1s3.html
[4] http://di002.edv.uniovi.es/~labra/FTP/PLF/pf.pdf
[5] http://csrg.inf.utfsm.cl/~rbonvall/lp/docs/funcional-diapos.pdf
[6] http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional