LISP - Loops

Pode haver uma situação em que você precise executar um bloco de números de código de vezes. Uma instrução de loop nos permite executar uma instrução ou grupo de instruções várias vezes e a seguir está a forma geral de uma instrução de loop na maioria das linguagens de programação.

LISP fornece os seguintes tipos de construções para lidar com os requisitos de loop. Clique nos links a seguir para verificar seus detalhes.

Sr. Não. Construir e Descrição
1 ciclo

o loopconstruir é a forma mais simples de iteração fornecida pelo LISP. Em sua forma mais simples, permite que você execute algumas instruções repetidamente até encontrar umreturn declaração.

2 laço para

O loop for construct permite implementar um loop for como a iteração mais comum em outras linguagens.

3 Faz

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

4 dotimes

A construção dotimes permite o loop para algum número fixo de iterações.

5 dolist

A construção dolist permite a iteração por meio de cada elemento de uma lista.

Saindo Graciosamente de um Bloco

o block e return-from permite que você saia normalmente de qualquer bloco aninhado no caso de qualquer erro.

o blockA função permite criar um bloco nomeado com um corpo composto de zero ou mais instruções. A sintaxe é -

(block block-name(
...
...
))

o return-from A função recebe um nome de bloco e um valor de retorno opcional (o padrão é nulo).

O exemplo a seguir demonstra isso -

Exemplo

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

(defun demo-function (flag)
   (print 'entering-outer-block)
   
   (block outer-block
      (print 'entering-inner-block)
      (print (block inner-block

         (if flag
            (return-from outer-block 3)
            (return-from inner-block 5)
         )

         (print 'This-wil--not-be-printed))
      )

      (print 'left-inner-block)
      (print 'leaving-outer-block)
   t)
)
(demo-function t)
(terpri)
(demo-function nil)

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

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 
5 
LEFT-INNER-BLOCK 
LEAVING-OUTER-BLOCK