sábado, 20 de mayo de 2017

Cómo programar: datos simples (16) - evaluación de la expresión COND

La expresión COND se evalua de la siguiente manera:

1) Si no hay parejas de pregunta / respuesta, señalar que hay error
2)  Si la primera pregunta no es un valor, evaluarla  y reemplazarla con el valor correspondiente. Es decir, reemplazar la expresión COND con una nueva COND en el que la primera pregunta sea reemplazada por su valor (falso o verdadero).
3) Si la primera pregunta es "true" o "else", reemplace toda la expresión COND con la primera respuesta.
4) Si la primera pregunta es "false", deje a un lado la pregunta / respuesta y siga con el siguiente condicional.
5) Si la primera pregunta no es falsa o verdadera, entonces señale un error.

Ejemplo:

(cond [ (> 1 2) "bigger"]
          [ (= 1 2) "equal"]
          [ (< 1 2) "smaller"] )

Evaluación:

La primera pregunta es si 1 es mayor que 2. De acuerdo al paso 2, hay que reemplazar la pregunta por su valor, es decir, por "false", puesto que es falso que 1 sea mayor que 2. El código queda así:

(cond [ false "bigger"]
          [ (= 1 2) "equal"]
          [ (< 1 2) "smaller"] )

Dado que la primera pregunta era falsa, el paso 4 indica que se debe avanzar hacia el siguiente condicional [ (= 1 2) "equal"]. El nuevo código quedaría así:

(cond  [ (= 1 2) "equal"]
          [ (< 1 2) "smaller"] )

Ahora la primera pregunta es si 1 es igual a 2. El paso 2 indica que hay que reemplazar la pregunta por su valor, es decir, por "false", dado que es falso que 1 sea igual a 2. El nuevo código queda así:

(cond  [ false "equal"]
          [ (< 1 2) "smaller"] )

Como la primera pregunta era falsa, el paso 4 indica que se debe avanzar hacia el siguiente condicional [ (< 1 2) "smaller] ). Despues de este cambio, el nuevo código es el siguiente:

(cond  [ (< 1 2) "smaller"] )

Ahora la  primera pregunta es si 1 es menor que 2, lo cual es verdadero.  El paso 3 indica que si la pregunta es verdadera, entonces reemplace toda la expresión COND con la primera respuesta, lo cual queda así:

"smaller"

Como se mencionó en un artículo anterior, no es necesario hacer esta evaluación de forma manual.  Esto es simplemente para ilustrar como DrRacket evalua las expresiones COND. Recuérdese que se puede evaluar esta expresión paso a paso utilizando el boton "paso" o "stepper".  

Anterior
Siguiente
 

No hay comentarios:

Publicar un comentario

Cómo programar: datos simples (21) - Enumeración

Diseñar una definición de datos para representar las letras de calificaciones en un curso.  Estas letras son A, B y C, que significan bueno,...