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
Apuntes del lenguaje de programación "Racket", tomados del curso virtual "How to code: simple data", que hace parte de la serie "Software development", impartida por University of British Columbia a través de edx.org. A este curso se puede acceder de forma gratuita. Los apuntes los estaré colocando en la médida que vaya avanzando en el curso.
Suscribirse a:
Enviar comentarios (Atom)
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,...
No hay comentarios:
Publicar un comentario