LISP - Do Construct

A construção do também é usada para realizar iterações usando LISP. Ele fornece uma forma estruturada de iteração.

A sintaxe da instrução do -

(do ((variable1    value1   updated-value1)
      (variable2   value2   updated-value2)
      (variable3   value3   updated-value3)
   ...)
   (test return-value)
   (s-expressions)
)

Os valores iniciais de cada variável são avaliados e vinculados à respectiva variável. O valor atualizado em cada cláusula corresponde a uma instrução de atualização opcional que especifica como os valores das variáveis ​​serão atualizados a cada iteração.

Após cada iteração, o teste é avaliado e, se retornar um valor diferente de zero ou verdadeiro, o valor de retorno é avaliado e retornado.

A (s) última (s) expressão (ões) s são opcionais. Se presentes, eles são executados após cada iteração, até que o valor de teste retorne verdadeiro.

Exemplo

Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele -

(do ((x 0 (+ 2 x))
   (y 20 ( - y 2)))
   ((= x y)(- x y))
   (format t "~% x = ~d  y = ~d" x y)
)

Ao clicar no botão Executar ou digitar Ctrl + E, o LISP o executa imediatamente e o resultado retornado é -

x = 0  y = 20
x = 2  y = 18
x = 4  y = 16
x = 6  y = 14
x = 8  y = 12