Path: csiph.com!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Daniel Cerqueira Newsgroups: pt.comp.programacao Subject: Re: Lisp, um mapa de trajeto Date: Fri, 12 Jan 2024 18:22:35 +0000 Organization: A noiseless patient Spider Lines: 94 Message-ID: <87y1cujtsk.fsf@brilhante.top> References: <87sf37ajzn.fsf@example.com> <87y1cy8z8u.fsf@example.com> <87v881z5qs.fsf@brilhante.top> <87a5pd6kuv.fsf@yaxenu.org> <8734v3ztrz.fsf@brilhante.top> <877cke4ny3.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="6fb8a24c525ace77ee16c51c8fcaf53a"; logging-data="3743677"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18lr1rjCmUW7Nd6m85zDsMEUrgcXmOxh+k=" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:55SDLHDdwAsJqwAe/FZYrq80ECo= sha1:HD8IKBdHpzJ3qaqwvjDC8eHRqeI= Xref: csiph.com pt.comp.programacao:132 Patricia Ferreira writes: > Ou felizmente. Talvez você odiasse Lisp. É o que acontece com > matemática e português, dado que (quase) todas as crianças vão à escola. Aí tens razão. Embora eu goste muito da matemática que aprendi na escola. >> A dificuldade que tenho é apenas em decorar as várias funções/macros da >> linguagem. > > Qual delas? Common Lisp? Sim, de Common Lisp. Acho que falta um livro, que eu conheça, mais sucinto sobre Common Lisp. Embora esta seja uma linguagem grande. O que mais se parece com um livro sucinto de Common Lisp, que eu conheça, é o "The Little Lisper" (está em archive.org). É um ótimo livro para aprender Lisp. > Vamos começar bem do zero e investigar onde estamos. (Estou assumindo > Common Lisp.) Qual seria um bom nome pro procedimento abaixo? Quanto > tempo você levou pra chegar a sua resposta? > > (defun f (ls) > (cond > ((null ls) nil) > ((consp ls) > (or (string= (car ls) "gluten") > (f (cdr ls)))))) > Eu chamaria de search-for-gluten. Embora seja algo que se deva evitar :-) Retorna t caso uma lista tenha como primeiro átomo a string "gluten". Não tenho bem a certeza o que é consp, mas deve ser para retornar t caso seja uma lista. Eu faria essa função de maneira diferente. Tipo: (defun search-for-gluten (list) (cond ((null list) nil) ((string= (car list) "gluten") t) (t (search-for-gluten (cdr list))))) Também se pode chamar a esta função de gluten-p ou glutenp . Acho que a minha função é mais legível que a tua :-P eheheh. >> Eu não uso SLIME porque não dá para criar imagens lisp com o SLIME. Uso >> M-x run-lisp , e assim já consigo usar o save-lisp-and-die. Tenho uma >> atitute minimalista com o software, uso apenas aquilo que realmente >> preciso, tento não usar dois softwares que fazem a mesma coisa. > > Mas assim você não tem uma integração entre seu buffer no GNU EMACS e o > *inferior-lisp*. Você não vai usar save-lisp-and-die o tempo todo. > Lembre-se de que você pode e deve manter o estado do seu programa num > programa.lisp. Você consegue reproduzir a imagem de Lisp sempre. Não > precisa salvá-la por completo assim. Tenho integração com o *inferior-lisp*. Quero dizer, isto abre-me a consola SBCL. Tenho acesso a C-c C-c e outras keybindings para programação com Lisp. Sim, não vou estar sempre a guardar imagens. Mas não gosto que SLIME retire esta funcionalidade (que eu considero importante). Eu guardo os meus programas lisp em ficheiros .lisp . >> Patricia, eu li e recomendo ler, os livros do John McCarthy sobre Lisp. > > Vamos enumerar esses livros. Qual o primeiro que você recomenda? 1. http://www-formal.stanford.edu/jmc/recursive.html 2. o livro de LISP 1.5 Programmers Manual. Ainda me falta ler este (estou agora a ler o PCL). >> Um dos seus websites é: http://www-formal.stanford.edu/jmc/ > > Maravilha. Vamos lembrar também que quando John McCarthy inventou Lisp, > ele não pensava na linguagem como uma linguagem de programação. Foi > Steve Russell, orientando de John McCarthy que viu que o procedimento > /eval/ poderia e deveria virar um programa de computador. Quando John > McCarthy ouviu a ideia direto do próprio Steve Russell, ele achou que o > Steve Russell estava viajando. A história é contada pelo próprio > McCarthy. Sim. É muito interessante essa história. Steve Russell fez o programa de computador de LISP em assembly, tanto quanto sei. PS: Penso que o meu domínio vai expirar no fim deste mês. Se vires eu responder com outro endereço depois deste mês, não estranhes. Tens chave OpenPGP?