Da documentação:
Execute BODY apenas enquanto não houver entrada pendente.
Se a entrada chegar, isso encerra a execução de BODY ewhile-no-input
retorna t. Sair faz com que ele retorne nulo. Se BODY terminar,while-no-input
retornará qualquer valor que BODY produziu.
Se bem entendi, essa macro permite (tentar) executar uma computação pesada sem interromper a interface. Certamente esse é um conceito que eu acho atraente, mas fico me perguntando quando isso é útil na prática.
Parece que o cálculo pode ser interrompido a qualquer momento, sem informações sobre onde isso aconteceu e nenhuma maneira fácil de retomar depois. O que me faz pensar que pode não ser tão útil, afinal ...
- Existe uma maneira recomendada de usar a
while-no-input
macro? - Existe algum exemplo de uso dessa macro na natureza?