Toma de decisiones en LISP

La toma de decisiones se utiliza para especificar la condición para evaluar una expresión en LISP.

Hay 4 tipos de declaraciones de toma de decisiones en LISP. Están

  • si
  • cond
  • cuando
  • caso

si declaración

El if es una declaración de toma de decisiones que se utiliza para verificar si la condición es correcta o incorrecta. Si la condición es correcta, irá dentro del bloque if y ejecutará las declaraciones debajo del bloque if. De lo contrario, las sentencias no se ejecutan.

Sintaxis:

(if (condition) then (statement 1).....(statement  n))

Aquí, entonces hay una palabra clave opcional que se usa dentro de la instrucción if.

Ejemplo 1: Programa LISP para verificar condiciones con operadores

Lisp

;define value to 100
(setq val1 100)
 
;check the number is equal to 100
(if (= val1 100)
   (format t "equal to 100"))
    
(terpri)
 
;check the number is greater than to 50
(if (> val1 50)
   (format t "greater than 50"))
   
(terpri)
 
;check the number is less than to 150
(if (< val1 150)
   (format t "less than 150"))

Producción:

equal to 100
greater than 50
less than 150

Ejemplo 2:

Lisp

;define value to 230
(setq val1 230)
 
;check the number is equal to 100
(if (= val1 100)
   (format t "equal to 100"))
    
(terpri)
 
;check the number is greater than to 50
(if (> val1 50)
   (format t "greater than 50"))
   
(terpri)
 
;check the number is less than to 150
(if (< val1 250)
   (format t "less than 250"))

Producción:

greater than 50
less than 250

declaración condicional

El cond es una declaración de toma de decisiones que se utiliza para hacer un número n de condiciones de prueba. Comprobará todas las condiciones.

Sintaxis:

(cond   (condition1 statements)
(condition2 statements)
(condition3 statements)
...
(conditionn statements)
)

Aquí,

  • Las condiciones especifican diferentes condiciones: si la condición 1 no se cumple, se pasa a la siguiente condición, es decir, hasta la última condición.
  • Las declaraciones especifican el trabajo realizado en función de la condición.

Nota: Ejecutará solo una instrucción.

Ejemplo 1: programa LISP para comprobar si un número es mayor que 200 o no.

Lisp

;set value1 to 500
(setq val1 500)
 
;check whether the val1 is greater than 200
(cond ((> val1 200)
   (format t "Greater than 200"))
   (t (format t "Less than 200")))

Producción:

Greater than 200

Ejemplo 2: Demostración con operadores

Lisp

;set value1 to 500
(setq val1 500)
 
;check whether the val1 is greater  than 200
(cond ((> val1 200)
   (format t "Greater than 200"))
   (t (format t "Not")))
    
 (terpri)
  
;check whether the val1 is equal to 500
(cond ((= val1 500)
   (format t "equal to 500"))
   (t (format t "Not")))
    
 (terpri)
  
;check whether the val1 is equal to 600
(cond ((= val1 600)
   (format t "equal to 500"))
   (t (format t "Not")))
 (terpri)
  
 ;check whether the val1 is greater than or equal to 400
(cond ((>= val1 400)
   (format t "greater than or equal to 400"))
   (t (format t "Not")))
    
 (terpri)
  
;check whether the val1 is less than or equal to 600
(cond ((<= val1 600)
   (format t "less than or equal to 600"))
   (t (format t "Not")))

 Producción:

Greater than 200
equal to 500
Not
greater than or equal to 400
less than or equal to 600

cuando Declaración

 El cuándo es una declaración de toma de decisiones que se utiliza para especificar las decisiones. Es similar a las declaraciones condicionales.

Sintaxis: 

(when (condition) (statements) )

dónde, 

  1. condición es una declaración de prueba utilizada para probar
  2. declaraciones son las acciones que dependerán de la condición

Ejemplo 1: Programa LISP para comprobar si el número es igual a 50 o no

Lisp

;set number to 50
(setq number 50)
 
;condition check the given number is equal to 50
(when (= number 50)
 
;statement
  (format t "Equal to 50")
   )

Producción:

Equal to 50

Ejemplo 2: Programa LISP para verificar el número dado con operadores de comparación

Lisp

;set number to 50
(setq number 50)
 
;condition check the given number is equal to 50
(when (= number 50)
 
;statement
  (format t "Equal to 50")
   )
(terpri)
;set number to 150
(setq number 150)
 
;condition check the given number is greater than or equal to 50
(when (>= number 50)
 
;statement
  (format t "greater than or Equal to 50")
   )
(terpri) 
   ;set number to 10
(setq number 10)
 
;condition check the given number is less than or equal to 50
(when (<= number 50)
 
;statement
  (format t "less than or Equal to 50")
   )

Producción:

Equal to 50
greater than or Equal to 50
less than or Equal to 50

declaración del caso

Esto se usa para verificar múltiples condiciones de prueba a la vez, a diferencia de cond, siempre y cuando permita múltiples condiciones.

Sintaxis :

(case  (key_value)
((key1)   (statement 1 .............. statement n) )
((key2)   (statement 1 .............. statement n) )
................
((keyn)   (statement 1 .............. statement n) )

aquí,

  1. key_value es el valor numérico tomado como entrada
  2. las claves son las diferentes condiciones para probar la condición particular especificada en las claves

Ejemplo: programa LISP para obtener el número particular cuando se da el número

Lisp

;define value to 2
(setq val1 2)
 
;define 5 cases from 1 to 5
(case val1
(1 (format t "you selected number 1"))
(2 (format t "you selected number 2"))
(3 (format t "you selected number 3"))
(4 (format t "you selected number 4"))
(5 (format t "you selected number 5"))
)

Producción:

you selected number 2

Ejemplo: Programa LISP para realizar una operación aritmética cuando se elige una tecla en particular

Lisp

;define value1 to 10
(setq val1 10)
 
;define value2 to 20
(setq val2 20)
 
;set input to 1
(setq input 1)
 
;define 4 cases to perform each arithmetic operation
(case input
 
;condition to perform addition
(1 (print (+ val1 val2)))
 
;condition to perform subtraction
(2 (print (- val1 val2)))
 
;condition to perform multiplication
(3 (print (* val1 val2)))
 
;condition to perform division
(4 (print (/ val1 val2)))
)

Producción:

30

Establecer entrada en 3

Lisp

;define value1 to 10
(setq val1 10)
 
;define value2 to 20
(setq val2 20)
 
;set input to 3
(setq input 3)
 
;define 4 cases to perform each arithmetic operation
(case input
 
;condition to perform addition
(1 (print (+ val1 val2)))
 
;condition to perform subtraction
(2 (print (- val1 val2)))
 
;condition to perform multiplication
(3 (print (* val1 val2)))
 
;condition to perform division
(4 (print (/ val1 val2)))
)

Producción:

200

Publicación traducida automáticamente

Artículo escrito por saisravanprojects y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *