Path: csiph.com!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Patricia Ferreira Newsgroups: pt.comp.programacao Subject: sobre loops em common lisp Date: Tue, 27 Feb 2024 21:48:57 -0300 Organization: A noiseless patient Spider Lines: 25 Message-ID: <87edcxza4m.fsf@example.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: dont-email.me; posting-host="c890591e3ccf13fd423f90d45b6a03a1"; logging-data="3678027"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX182L78qLJUJ8rl2DYB4KB4XtfdfG2B/cw4=" Cancel-Lock: sha1:+uhKkSNtgRDMQ/rQypbxX9Tw1ag= sha1:Uf8K2HHrr/4rzXLOI8v35U+aF0g= Xref: csiph.com pt.comp.programacao:257 Finalmente aprendi a fazer uns laços básicos por aqui. Eis um loop infinito: (loop (format t "See you in never.~%")) Chamo de ``loop fechado'' aquele em que você sabe quando ele termina antes mesmo de começar: (dotimes (x 10 'done) (format t "x = ~a~%" x)) Chamo de ``loop aberto'' aquele que é feito com do: (do ((x 1 (1+ x)) (y 10 (1- y))) ;; sua lista de variáveis a iterar (when (satisfied?) 'done) ;; quando termina? (format t "x = ~a, y = ~a~%" x y)) É difícil escrever quando a gente não conhece a linguagem. Mais uma razão pra eu amar Lisp---mesmo sem conhecer, estou me divertindo como nunca. Incrível. Grande agradecimento ao GNU EMACS, SLIME, SBCL. Mais importante, muito obrigado à primeira pessoa que me chamou a atenção de Lisp.