Используя макрос while
, который Брайан предоставляет в своем ответе, очень просто написать макрос forever
, который ничего не делает, но отбрасывает логический тест с while
:
(defmacro forever [& body]
`(while true ~@body))
user=> (forever (print "hi "))
hi hi hi hi hi hi hi hi hi hi hi ....
Это забавная часть любого Лиспа, вы можете создавать свои собственные управляющие структуры, а взамен вы избегаете большого количества стандартного кода .