Tecnicas de programacion funcional perezosa
Enviado por kayaford92 • 3 de Junio de 2014 • 308 Palabras (2 Páginas) • 1.913 Visitas
TECNICAS DE PROGRAMACION FUNCIONAL PEREZOSA
La semántica adoptada para el no determinismo es la elección en la invocación (call-time choice), por resultar mas natural para la programación y mas eficaz en la ejecución al corresponderse con el mecanismo de compartición.
En el no-determinismo existen varias técnicas como son:
-Técnica de Backtracking (prolog): si una alternativa “falla”, el flujo retorna hasta la ultima decisión e intenta otra.
-Tecnica de guardias (guards): si mas de una es cierta, se escoge cualquiera de ellas.
-Tecnica de aprendizaje reforzado (A-LISP): Recordar decisiones exitosas y aumentar su prioridad asi como considerar las decisiones en el contexto del estado mutable.
• BUSQUEDA NO DETERMINISTA
Un algoritmo no determinista
-Ofrece muchos posibles resultados
-Emplean modelos de computación tales como la maquina de turing probabilística, que no son deterministas
-puede simularse utilizando la lista de éxitos como por ejemplo x=x, x candidatos, validos
• DATOS NO DETERMINISTAS
Requiere tipo de datos diferente como son
Data list m a= nil (cons (m a)(m(list a))
Puede representar lista perezosa no determinista.
Cons [2] [Nil, cons[1]]:: list{} int
Los argumentos de cons representan computación no determinista, permute y lsSorted se pueden adaptar a la lista de tipo permute y genera permutaciones perezosamente los rendimientos isSorted [true, false]es aplicada por encima de la lista (s).
PROGRAMACION FUNCIONAL-LOGICA
La programación lógica, junto con la funcional, forma parte de los que se conoce como programación declarativa. En los lenguajes tradicionales, la programación consiste en como resolver un problema mediante sentencias; en la programación lógica, se trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no como, sino que hacer.
La programación funcional esta constituida mediante definición de funciones puramente matemáticas. Esta basado en un modelo matemático; lambda-calculo.
VENTAJAS Y DESVENTAJAS DE LOS LENGUAJES FUNCIONALES.
-Ventajas: mas faciles de escribir, depurar y mantener que los lenguajes imperativos gracias a la ausencia de efectos de borde.
-Desventajas: se quedan cortos en portabilidad, riqueza de librerias interfaces con otros lenguajes y herramientas de depuracion.
...