Construir en LISP

En este artículo, discutiremos el Do Construct en LISP. Do construct se utiliza para realizar una iteración en un formato estructurado.

Sintaxis :

(do ((variable1    value1   new updated value 1)
    (variable2   value2   new updated value 2)
-------------------------------
-------------------------------
    (variable n   value n    new updated value n)
 ...)
 (test statements)  
)

Aquí,

  1. las variables son los valores de entrada.
  2. Los nuevos valores actualizados son los valores que se actualizan en función de la condición dada en el valor.
  3. Las sentencias de prueba deben ejecutarse al final.

Ejemplo 1 : programa LISP para obtener el valor de incremento y decremento de la pantalla hasta la condición dada

Lisp

;define value 1 to 0
;define value 2 to 30
(do ((val1 0 (+ 2 val1))
   (val2 24 ( - val2 2)))
    ;display both values until value1 is equal to  value2
    ;by incrementing value1 by 2
    ;by decrementing value2 by 2
   ((= val1 val2)(- val2 val2))
    ;display
   (format t "~% value 1 = ~d  and  value 2  = ~d" val1 val2)
)

Producción:

value 1 = 0  and  value 2  = 24
value 1 = 2  and  value 2  = 22
value 1 = 4  and  value 2  = 20
value 1 = 6  and  value 2  = 18
value 1 = 8  and  value 2  = 16
value 1 = 10  and  value 2  = 14

Ejemplo 2: programa LISP para mostrar todo hasta que el valor 1 sea mayor que el valor 2 mediante la realización de operaciones de incremento y disminución

Lisp

;define value 1 to 0
;define value 2 to 30
(do ((val1 0 (+ 2 val1))
   (val2 24 ( - val2 2)))
    
    ;display both values until value1 is greater than  value2
    ;by incrementing value1 by 2
    ;by decrementing value2 by 2
   ((> val1 val2)(- val2 val2))
    ;display
   (format t "~% value 1 = ~d  and  value 2  = ~d" val1 val2)
)

Producción:

value 1 = 0  and  value 2  = 24
value 1 = 2  and  value 2  = 22
value 1 = 4  and  value 2  = 20
value 1 = 6  and  value 2  = 18
value 1 = 8  and  value 2  = 16
value 1 = 10  and  value 2  = 14
value 1 = 12  and  value 2  = 12

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 *