Una expresión que consta de una función aplicada a uno o mas parámetros puede ser reducida aplicando la función:
Mult (x,y) = x*y
Si queremos reducir:
Mult (1+2, 2+3)
Tipos de evaluaciones:
- De adentro hacia afuera
- De afuera hacia adentro
- Evaluaciones que no terminan
Estrategia De Adentro Hacia Afuera
Esta estrategia elige el redex que esta "mas adentro", esto quiere decir, el redex que no contiene otro redex. Si existe mas de un redex que cumple dicha condición se elige el que esta mas a la izquierda.
Por ejemplo: mult (1+2, 2+3)
Aplicamos el primer +
mult (3, 2+3)
Aplicamos el segundo +
mult (3, 5)
Aplicamos la Multiplicación
3*5
Aplicamos *
15
Estrategia de Afuera Hacia Adentro
Elige el redex que esta "mas afuera" entendiendo por esto al redex que no esta contenido en otro redex. Si existe mas de un redex que cumple dicha condición se elige el que esta mas a la izquierda.
Por ejemplo: mult (1+2, 2+3)
Aplicamos Mult
(1+2) * (2+3)
Aplicamos el primer +
3 * (2+3)
Aplicamos el segundo +
3 * 5
Aplicamos *
15
Evaluaciones que no terminan
Se tiene 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 mas y mas grande (independientemente de la estrategia 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...
Autor: Marlem Reyes
Fecha: 04/04/2016
No hay comentarios.:
Publicar un comentario