Estructuras condicionales en Lisp

  • (if condición
    expr1
    expr2)
    En el caso de que condición sea cierto se evalua expr1, en caso contrario expr2.

    (if (< nota 5)
    ‘suspenso
    ‘aprobado)

  • (cond (cond1 expr1)
    (cond2 expr2)

    (t exprN))
    Equivalente a una serie de ifs, si se cumple cond1 se evalua expr1, si no, si cond2 es cierto se evalua expr2,… El t final es opcional y dado que se cumple siempre sería equivalente a un default en un switch de java

    (cond ((< nota 5) 'suspenso)
    ((< nota 7) 'aprobado)
    ((< nota 9) 'notable)
    ((< nota 10) 'sobresaliente)
    (t ‘error))

  • (case expresion
    (valor1 expr1)
    ((valor2 valor3) expr2)

    (otherwise expr))
    Equivalente a los switchs de Java. Si expresión evalua a valor1 se ejecuta expr1, si evalua a valor2 o valor3 (si puede evaluar a mas de un valor se colocan en una lista) se evalua expr2,… Otherwise es equivalente a default en los switchs de java, se ejecuta si no evalúa a ninguno de los demás.

    Nota: case evalua con eql!!!

    (case nota
    ((0 1 2 3 4) ‘Suspenso)
    (5 ‘Aprobado)
    (6 ‘Bien)
    ((7 8) ‘Notable)
    ((9 10) ‘Sobresaliente))

4 pensamientos en “Estructuras condicionales en Lisp”

  1. soy estudiante de la uam y estoy haciendo prácticas de lisp en una asignatura y se me hace muy dificil lisp aunque creo que sere yo que soy un poco torpe porque a mis compañeros se les da bien lisp

    1. Yo tambien estoy haciendo prácticas de LISP en la asignatura IA de la UAM y esto es mazo complicado y solo estoy en la práctica 1.

      ¿Tú has aprobado ya estaasignatura?

  2. Programo en LISP varios años y no es imposible aprenderlo sólo requiere practicarlo varias veces y se hará fácil, que bueno que se enseñe en algunas universidades aquí en Perú no sucede eso.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.