o whenmacro é seguida por uma cláusula de teste que avalia t ou nil. Se a cláusula de teste for avaliada como nil, nenhum formulário será avaliado e nil será retornado; no entanto, o resultado do teste é t, então a ação após a cláusula de teste é executada.
Sintaxe para macro quando -
(when (test-clause) (<action1) )
Exemplo
Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.
(setq a 100)
(when (> a 20)
(format t "~% a is greater than 20"))
(format t "~% value of a is ~d " a)
Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -
a is greater than 20
value of a is 100