Evaluaci N PEREZOSA O LENTA

Páginas: 5 (1127 palabras) Publicado: 13 de abril de 2015
Evaluación PEREZOSA o LENTA (Lazy)
No se evalúa ningún elemento en ninguna función hasta que no sea necesario. Las listas se almacenan internamente en un formato no evaluado. La evaluación perezosa consiste en utilizar paso por nombre y recordar los valores de los argumentos ya calculados para evitar recalcularlos. También se denomina estrategia de pasos de parámetros por necesidad (call byneed).Con una estrategia no estricta de la expresión doble (doble 3), la expresión (3 + 3) se calcula dos veces.

Este tipo de evaluación es útil para trabajar con listas infinitas

Ejemplo: ones = 1 : ones – Lista con un número infinito de 1s.

El problema que tiene este tipo de evaluación es que algunas expresiones se reducen varias veces como por ejemplo, en la expresión doble (doble 3); laexpresión (3 + 3) se reduce dos veces, lo que no ocurre en el caso de evaluación impaciente.

doble (doble 3) por la definición de doble
a + a donde a = doble 3 por la definición de doble
a + a donde a = b + b donde b = 3 por el operador +
a + a donde a = 6 por el operador +
12

Estrategia de la evaluación perezosa:
Una estrategia de evaluación es un conjunto de reglas para evaluar expresiones enun lenguaje de programación. Una estrategia de evaluación define cuando y en qué orden los argumentos a una función son evaluados, cuando se sustituyen en la función, y lo que la sustitución se forman.
Las estrategias de evaluación se dividen en dos grupos básicos, estrictos y no estrictos, basados en cómo se manejan los argumentos de una función.


Estrategias básicas.
Una expresión que constade una función aplicada a uno o más parámetros y que puede ser “reducida” aplicando dicha función la vamos a llamar Redex (Reducible Expression).
Tipos:
De adentro hacia afuera o call-by-value.
De afuera hacia adentro p call-by-name.
Evaluaciones que no terminan.
De adentro hacia afuera o call-by-value: Esta estrategia elige el Redex que está “más adentro” entendiendo por esto al Redex que nocontiene otro Redex. Si existe más de un Redex que cumple dicha condición se elige el que está más a la izquierda.

Por ejemplo: Mult (1+2,2+3)
Aplicamos el primer + Esta estrategia asegura que los parámetros de una función están
Mult (3,2+3) completamente evaluados antes de que la función sea aplicada.
Aplicamos el + Por eso se dice que los parámetros se pasan por valor.
Mult (3,5)
Aplicamos elmult
3 * 5
Aplicamos *
15

De afuera hacia adentro o call-by-name: Elige el Redex que está “más afuera” entendiendo por esto al Redex que no está contenido en otro Redex. Si existe más de un Redex que cumple dicha condición se elige el que está más a la izquierda.
Por ejemplo: Mult (1+2,2+3)
Aplicamos Mult El operador * y el + no pueden ser aplicados hasta que sus dos (1+2)*(2+3) parámetroshayan sido evaluados (números). A las funciones que
Aplicamos el primer + cumplen con esta propiedad las vamos a llamar funciones
3* (2+3) estrictas.
Aplicamos +
3*5
Aplicamos *
15

Evaluaciones que no terminan: Tengan en cuenta la siguiente definición inf = 1 + inf.
Intentar reducir la expresión inf siempre nos va a dar como resultado una expresión más y más grande (independientemente de laestrategia de evaluación que usemos)
inf
Aplicamos inf
1+inf
Aplicamos inf (porque + es estricta)
1+ (1+inf)
Aplicamos inf (porque + es estricta)
… 1 + (1 + (1 + (1 + (1 + (1 +… + inf )))))
Por ende, esta evaluación nunca terminaría.
Sabiendo que
Fst (x, _ ) = x
Consideremos la expresión fst (0,inf)
Usando la estrategia call-by-value
Fst(0,inf)
Aplicamos inf
Fst(0,1 + inf)
Aplicamos infFst (0, 1 + (1 + inf)
Aplicamos inf
Fst (0, 1 + (1 + (1 +inf) ) )
Aplicamos inf

Usando call-by-value la evaluación de la expresión no termina.
Usemos call-by-name
Fst(0,inf)
Aplicamos fst
0

Si existe alguna secuencia de evaluación que haga terminar la evaluación de la expresión entonces con la estrategia call-by-name también se termina la evaluación.













¿QUÉ ES LA EVALUACIÓN...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Evaluaci N
  • Evaluaci N
  • Evaluaci n es un
  • Evaluaci N
  • EVALUACI N
  • Evaluaci N
  • la evaluacio n
  • Evaluaci N

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS