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))

Comentarios
  1. davizon

    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

    Responder

    • asdf

      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?

      Responder

  2. David

    es la primera vez que veo LISP y se me hace que es lo mismo que los demas lengujes solo que con diferente sintaxis

    Responder

  3. Raúl

    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.

    Responder

Deja un comentario