Seguinte: Sequenciação Acima: Programação Imperativa Anterior: Programação Imperativa
Índice remissivo

Atribuição

Para se alterar o valor de uma variável Lisp possui um operador de atribuição. A forma especial setq recebe uma variável e um valor e atribui o valor à variável.

> (let ((x 2))
    (setq x (+ x 3))
    (setq x (* x x))
    (setq x (- x 5))
    x)
20

Cada vez que se realiza uma atribuição, perde-se o valor anterior que a variável possuía. Muito embora a forma especial setq, como todas as funções e forma especiais, retorne um valor, esse valor não possui qualquer interesse. O operador de atribuição serve apenas para modificar o estado de um programa, neste exemplo, alterando o valor de x. Por este motivo, a atribuição assemelha-se mais a um comando do que a uma função. A atribuição é uma ordem que tem de ser cumprida e de que não interessa o resultado. A ordem é a operação fundamental da programação imperativa, em que um programa é composto por sucessivos comandos. Neste estilo de programação, os comandos funcionam por efeitos secundários. O valor de cada comando não tem interesse e muitas vezes nem sequer tem significado falar dele.



Copyright António Leitão, 1995