Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pt.comp.programacao > #257 > unrolled thread

sobre loops em common lisp

Started byPatricia Ferreira <pferreira@example.com>
First post2024-02-27 21:48 -0300
Last post2024-03-08 17:12 -0300
Articles 20 — 2 participants

Back to article view | Back to pt.comp.programacao


Contents

  sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-02-27 21:48 -0300
    Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-02-28 18:25 +0000
      Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-02-28 21:49 -0300
        Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-02-29 10:15 +0000
          Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-03 22:49 -0300
            Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-03-04 07:55 +0000
              Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-04 14:37 -0300
                Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-03-04 19:49 +0000
                  Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-04 21:46 -0300
                    Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-03-05 09:03 +0000
                      Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-05 17:21 -0300
                        Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-03-06 08:56 +0000
                          Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-08 17:16 -0300
                            Re: sobre loops em common lisp Daniel Cerqueira <dan.list@lispclub.com> - 2024-03-08 21:11 +0000
                              Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-08 18:38 -0300
        Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-05 17:23 -0300
          Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-05 19:50 -0300
            Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-05 20:05 -0300
              Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-05 20:07 -0300
                Re: sobre loops em common lisp Patricia Ferreira <pferreira@example.com> - 2024-03-08 17:12 -0300

#257 — sobre loops em common lisp

FromPatricia Ferreira <pferreira@example.com>
Date2024-02-27 21:48 -0300
Subjectsobre loops em common lisp
Message-ID<87edcxza4m.fsf@example.com>
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. 

[toc] | [next] | [standalone]


#258

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-02-28 18:25 +0000
Message-ID<87le74la4b.fsf@lispclub.com>
In reply to#257
Patricia Ferreira <pferreira@example.com> writes:

> 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. 

Oi Patricia. O PCL explica isso dos loops. O livro está aberto online em
https://gigamonkeys.com/book/ .

Bons processamentos.

[toc] | [prev] | [next] | [standalone]


#259

FromPatricia Ferreira <pferreira@example.com>
Date2024-02-28 21:49 -0300
Message-ID<87ttlst7px.fsf@example.com>
In reply to#258
Daniel Cerqueira <dan.list@lispclub.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> 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. 
>
> Oi Patricia. O PCL explica isso dos loops. O livro está aberto online em
> https://gigamonkeys.com/book/ .
>
> Bons processamentos.

Thanks.  Vou ler o ``LOOP for black belts''.  Mas não sei se pretendo
usar esses truques todos, não.  Parece difícil de entender como essas
coisas funcionam.  Ainda não sei o que vai acontecer.  De repente vou
usar pra caramba. :)

[toc] | [prev] | [next] | [standalone]


#260

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-02-29 10:15 +0000
Message-ID<87h6hrlgo6.fsf@lispclub.com>
In reply to#259
Patricia Ferreira <pferreira@example.com> writes:

> Daniel Cerqueira <dan.list@lispclub.com> writes:
>
>> Patricia Ferreira <pferreira@example.com> writes:
>>
>>> 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. 
>>
>> Oi Patricia. O PCL explica isso dos loops. O livro está aberto online em
>> https://gigamonkeys.com/book/ .
>>
>> Bons processamentos.
>
> Thanks.  Vou ler o ``LOOP for black belts''.  Mas não sei se pretendo
> usar esses truques todos, não.  Parece difícil de entender como essas
> coisas funcionam.  Ainda não sei o que vai acontecer.  De repente vou
> usar pra caramba. :)

Ahaha.

Mas repara, o "LOOP for Black Belts" é um tópico avançado. Antes ainda
tem uns capítulos que explicam sobre o `do` e o `dotimes`. Página 83,
Capítulo 7. ;-)

[toc] | [prev] | [next] | [standalone]


#261

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-03 22:49 -0300
Message-ID<87o7buu5pv.fsf@example.com>
In reply to#260
Daniel Cerqueira <dan.list@lispclub.com> writes:

[...]

>>> Oi Patricia. O PCL explica isso dos loops. O livro está aberto online em
>>> https://gigamonkeys.com/book/ .
>>>
>>> Bons processamentos.
>>
>> Thanks.  Vou ler o ``LOOP for black belts''.  Mas não sei se pretendo
>> usar esses truques todos, não.  Parece difícil de entender como essas
>> coisas funcionam.  Ainda não sei o que vai acontecer.  De repente vou
>> usar pra caramba. :)
>
> Ahaha.
>
> Mas repara, o "LOOP for Black Belts" é um tópico avançado. Antes ainda
> tem uns capítulos que explicam sobre o `do` e o `dotimes`. Página 83,
> Capítulo 7. ;-)

Esses são meio óbvios. :) 

Li ``LOOP for Black Belts''.  Gostei bastante.  Estou gostando de LOOP.
Não devo usar tudo isso na minha vida---creio---, mas estou gostando de
ter a coisa disponível.  Hoje estou começando a ler sobre FORMAT.  Vou
ler ``18. A Few FORMAT Recipes'', Peter Seibel.  Estou precisando
imprimir datas por aqui e FORMAT vem a ser necessária além de ``~a''.

Como estão as prepações pro lispclub.com?

Sabe a quem você deve pedir conselhos sobre o projeto?  Professor
Abrantes Filho.

  https://www.abrantes.pro.br/2021/03/17/o-que-e-lisp-dialetos-e-implementacoes/
  https://www.youtube.com/@abrantesfilho

Fala pra ele vir fazer uma visita à gente aqui.  (Tem crase aí mesmo?)

[toc] | [prev] | [next] | [standalone]


#262

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-03-04 07:55 +0000
Message-ID<874jdm77n4.fsf@lispclub.com>
In reply to#261
Patricia Ferreira <pferreira@example.com> writes:

> Li ``LOOP for Black Belts''.  Gostei bastante.  Estou gostando de LOOP.
> Não devo usar tudo isso na minha vida---creio---, mas estou gostando de
> ter a coisa disponível.  Hoje estou começando a ler sobre FORMAT.  Vou
> ler ``18. A Few FORMAT Recipes'', Peter Seibel.  Estou precisando
> imprimir datas por aqui e FORMAT vem a ser necessária além de ``~a''.

Já li esse capítulo do FORMAT. Adorei. Muito poderoso o FORMAT de Common
LISP. Ainda não li o capítulo do ``LOOP for Black Belts''. Estou a ler
sobre Exceções (também muito melhor que Exceções em qualquer outra
linguagem).

> Como estão as prepações pro lispclub.com?

Estão a ir com calma. Tenho passado o meu tempo no Tildeverso. Conheces?

> Sabe a quem você deve pedir conselhos sobre o projeto?  Professor
> Abrantes Filho.
>
>   https://www.abrantes.pro.br/2021/03/17/o-que-e-lisp-dialetos-e-implementacoes/
>   https://www.youtube.com/@abrantesfilho
>
> Fala pra ele vir fazer uma visita à gente aqui.  (Tem crase aí mesmo?)

Esse Abrantes Filho parece ter bons conhecimentos. Mas pediria conselhos
sobre o quê, e para quê?

[toc] | [prev] | [next] | [standalone]


#263

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-04 14:37 -0300
Message-ID<87a5nducd6.fsf@example.com>
In reply to#262
Daniel Cerqueira <dan.list@lispclub.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> Li ``LOOP for Black Belts''.  Gostei bastante.  Estou gostando de LOOP.
>> Não devo usar tudo isso na minha vida---creio---, mas estou gostando de
>> ter a coisa disponível.  Hoje estou começando a ler sobre FORMAT.  Vou
>> ler ``18. A Few FORMAT Recipes'', Peter Seibel.  Estou precisando
>> imprimir datas por aqui e FORMAT vem a ser necessária além de ``~a''.
>
> Já li esse capítulo do FORMAT. Adorei. Muito poderoso o FORMAT de Common
> LISP. Ainda não li o capítulo do ``LOOP for Black Belts''. Estou a ler
> sobre Exceções (também muito melhor que Exceções em qualquer outra
> linguagem).

Lisp é fantástica.  Essa comunidade realmente deixou todas as outras
``no chinelo''.

>> Como estão as prepações pro lispclub.com?
>
> Estão a ir com calma. Tenho passado o meu tempo no Tildeverso. Conheces?

Conheço não.  Conte-nos sobre.

>> Sabe a quem você deve pedir conselhos sobre o projeto?  Professor
>> Abrantes Filho.
>>
>>   https://www.abrantes.pro.br/2021/03/17/o-que-e-lisp-dialetos-e-implementacoes/
>>   https://www.youtube.com/@abrantesfilho
>>
>> Fala pra ele vir fazer uma visita à gente aqui.  (Tem crase aí mesmo?)
>
> Esse Abrantes Filho parece ter bons conhecimentos. Mas pediria conselhos
> sobre o quê, e para quê?

``Conselho'' significa ir conversar.  Diferente de mim, ele está /super/
presente na Internet.  (Apesar de não responder ao e-mail pessoal
dele---lol.)  Ele pode curtir se juntar a você no lispclub.com.  (Eu sou
anti-social.)  A USENET é a contradição da minha vida.  Lol.

[toc] | [prev] | [next] | [standalone]


#264

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-03-04 19:49 +0000
Message-ID<87r0gpbwv6.fsf@lispclub.com>
In reply to#263
Patricia Ferreira <pferreira@example.com> writes:

> Daniel Cerqueira <dan.list@lispclub.com> writes:
>
>> Patricia Ferreira <pferreira@example.com> writes:
>>
>>> Li ``LOOP for Black Belts''.  Gostei bastante.  Estou gostando de LOOP.
>>> Não devo usar tudo isso na minha vida---creio---, mas estou gostando de
>>> ter a coisa disponível.  Hoje estou começando a ler sobre FORMAT.  Vou
>>> ler ``18. A Few FORMAT Recipes'', Peter Seibel.  Estou precisando
>>> imprimir datas por aqui e FORMAT vem a ser necessária além de ``~a''.
>>
>> Já li esse capítulo do FORMAT. Adorei. Muito poderoso o FORMAT de Common
>> LISP. Ainda não li o capítulo do ``LOOP for Black Belts''. Estou a ler
>> sobre Exceções (também muito melhor que Exceções em qualquer outra
>> linguagem).
>
> Lisp é fantástica.  Essa comunidade realmente deixou todas as outras
> ``no chinelo''.
>
>>> Como estão as prepações pro lispclub.com?
>>
>> Estão a ir com calma. Tenho passado o meu tempo no Tildeverso. Conheces?
>
> Conheço não.  Conte-nos sobre.

O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
``shell'' remota, onde pode colocar ficheiros na web, usar programas
através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.

Vê https://tildeverse.org/ .

O https://tilde.club/ também tem um servidor Usenet. Aconselho
subscrever ao grupo tilde.art.ascii ;-) .

>>> Sabe a quem você deve pedir conselhos sobre o projeto?  Professor
>>> Abrantes Filho.
>>>
>>>   https://www.abrantes.pro.br/2021/03/17/o-que-e-lisp-dialetos-e-implementacoes/
>>>   https://www.youtube.com/@abrantesfilho
>>>
>>> Fala pra ele vir fazer uma visita à gente aqui.  (Tem crase aí mesmo?)
>>
>> Esse Abrantes Filho parece ter bons conhecimentos. Mas pediria conselhos
>> sobre o quê, e para quê?
>
> ``Conselho'' significa ir conversar.  Diferente de mim, ele está /super/
> presente na Internet.  (Apesar de não responder ao e-mail pessoal
> dele---lol.)  Ele pode curtir se juntar a você no lispclub.com.  (Eu sou
> anti-social.)  A USENET é a contradição da minha vida.  Lol.

Okay. Se conseguires que ele venha aqui falar seria bom. Mas se ele não
responde ao email, como é que ele está "/super/ presente na Internet"?
Parece-me uma contradição.

[toc] | [prev] | [next] | [standalone]


#265

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-04 21:46 -0300
Message-ID<87plw9sdyt.fsf@example.com>
In reply to#264
Daniel Cerqueira <dan.list@lispclub.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>
>>> Patricia Ferreira <pferreira@example.com> writes:
>>>
>>>> Li ``LOOP for Black Belts''.  Gostei bastante.  Estou gostando de LOOP.
>>>> Não devo usar tudo isso na minha vida---creio---, mas estou gostando de
>>>> ter a coisa disponível.  Hoje estou começando a ler sobre FORMAT.  Vou
>>>> ler ``18. A Few FORMAT Recipes'', Peter Seibel.  Estou precisando
>>>> imprimir datas por aqui e FORMAT vem a ser necessária além de ``~a''.
>>>
>>> Já li esse capítulo do FORMAT. Adorei. Muito poderoso o FORMAT de Common
>>> LISP. Ainda não li o capítulo do ``LOOP for Black Belts''. Estou a ler
>>> sobre Exceções (também muito melhor que Exceções em qualquer outra
>>> linguagem).
>>
>> Lisp é fantástica.  Essa comunidade realmente deixou todas as outras
>> ``no chinelo''.
>>
>>>> Como estão as prepações pro lispclub.com?
>>>
>>> Estão a ir com calma. Tenho passado o meu tempo no Tildeverso. Conheces?
>>
>> Conheço não.  Conte-nos sobre.
>
> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>
> Vê https://tildeverse.org/ .
>
> O https://tilde.club/ também tem um servidor Usenet. Aconselho
> subscrever ao grupo tilde.art.ascii ;-) .

Fabuloso.  Preciso criar conta lá pra conseguir postar?

>>>> Sabe a quem você deve pedir conselhos sobre o projeto?  Professor
>>>> Abrantes Filho.
>>>>
>>>>   https://www.abrantes.pro.br/2021/03/17/o-que-e-lisp-dialetos-e-implementacoes/
>>>>   https://www.youtube.com/@abrantesfilho
>>>>
>>>> Fala pra ele vir fazer uma visita à gente aqui.  (Tem crase aí mesmo?)
>>>
>>> Esse Abrantes Filho parece ter bons conhecimentos. Mas pediria conselhos
>>> sobre o quê, e para quê?
>>
>> ``Conselho'' significa ir conversar.  Diferente de mim, ele está /super/
>> presente na Internet.  (Apesar de não responder ao e-mail pessoal
>> dele---lol.)  Ele pode curtir se juntar a você no lispclub.com.  (Eu sou
>> anti-social.)  A USENET é a contradição da minha vida.  Lol.
>
> Okay. Se conseguires que ele venha aqui falar seria bom. Mas se ele não
> responde ao email, como é que ele está "/super/ presente na Internet"?
> Parece-me uma contradição.

É uma contradição mesmo.  Ele tem canal no Youtube e mais um monte de
outras presenças, mas o e-mail dele ele parece não responder.  É a vida.

[toc] | [prev] | [next] | [standalone]


#266

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-03-05 09:03 +0000
Message-ID<87cys9aw3o.fsf@lispclub.com>
In reply to#265
Patricia Ferreira <pferreira@example.com> writes:

> Daniel Cerqueira <dan.list@lispclub.com> writes:
>
>> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
>> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
>> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
>> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>>
>> Vê https://tildeverse.org/ .
>>
>> O https://tilde.club/ também tem um servidor Usenet. Aconselho
>> subscrever ao grupo tilde.art.ascii ;-) .
>
> Fabuloso.  Preciso criar conta lá pra conseguir postar?

Sugiro criares uma conta em tilde.club . É o tilde original. Os outros
tildes tem administradores que não aprovam a liberdade de expressão,
infelizmente. Fiquei a saber isso através de uns eventos recentes.

Depois sim, consegues postar nos grupos USENET tilde.* . Tens acesso a
estes grupos através de qualquer servidor do tildeverso, usando SSH, mas
no tilde.club , podes postar nestes grupos fora de SSH , usando o teu
cliente de USENET favorito, com a tua password da conta tilde.club.

Se o teu cliente de USENET for o Gnus do GNU Emacs, isto faz pouca
diferença, porque com o Gnus dá para configurar ter acesso à USENET
através de uma conexão SSH. O Gnus é muito poderoso :-)

De qualquer das maneiras, sugiro o tilde.club. Talvez até um dia te
juntes ao nosso IRC (o IRC do tilde.club, chama-se Newnet). É só fazeres
SSH e executares `chat` :-)

[toc] | [prev] | [next] | [standalone]


#267

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-05 17:21 -0300
Message-ID<87h6hksa4k.fsf@example.com>
In reply to#266
Daniel Cerqueira <dan.list@lispclub.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>
>>> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
>>> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
>>> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
>>> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>>>
>>> Vê https://tildeverse.org/ .
>>>
>>> O https://tilde.club/ também tem um servidor Usenet. Aconselho
>>> subscrever ao grupo tilde.art.ascii ;-) .
>>
>> Fabuloso.  Preciso criar conta lá pra conseguir postar?
>
> Sugiro criares uma conta em tilde.club . É o tilde original. Os outros
> tildes tem administradores que não aprovam a liberdade de expressão,
> infelizmente. Fiquei a saber isso através de uns eventos recentes.

Que loucura.

> Depois sim, consegues postar nos grupos USENET tilde.* . Tens acesso a
> estes grupos através de qualquer servidor do tildeverso, usando SSH,

Eles não conhecem a Internet?

> mas no tilde.club , podes postar nestes grupos fora de SSH , usando o
> teu cliente de USENET favorito, com a tua password da conta
> tilde.club.

Pelo menos um conhece. :)

> Se o teu cliente de USENET for o Gnus do GNU Emacs, isto faz pouca
> diferença, porque com o Gnus dá para configurar ter acesso à USENET
> através de uma conexão SSH. O Gnus é muito poderoso :-)

:-)

> De qualquer das maneiras, sugiro o tilde.club. Talvez até um dia te
> juntes ao nosso IRC (o IRC do tilde.club, chama-se Newnet). É só fazeres
> SSH e executares `chat` :-)

Eles têm uma rede IRC que só deve ser usada de um dos hosts tilde? :-)

[toc] | [prev] | [next] | [standalone]


#272

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-03-06 08:56 +0000
Message-ID<875xxzbuwl.fsf@lispclub.com>
In reply to#267
Patricia Ferreira <pferreira@example.com> writes:

> Daniel Cerqueira <dan.list@lispclub.com> writes:
>
>> Patricia Ferreira <pferreira@example.com> writes:
>>
>>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>>
>>>> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
>>>> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
>>>> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
>>>> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>>>>
>>>> Vê https://tildeverse.org/ .
>>>>
>>>> O https://tilde.club/ também tem um servidor Usenet. Aconselho
>>>> subscrever ao grupo tilde.art.ascii ;-) .
>>>
>>> Fabuloso.  Preciso criar conta lá pra conseguir postar?
>>
>> Sugiro criares uma conta em tilde.club . É o tilde original. Os outros
>> tildes tem administradores que não aprovam a liberdade de expressão,
>> infelizmente. Fiquei a saber isso através de uns eventos recentes.
>
> Que loucura.
>
>> Depois sim, consegues postar nos grupos USENET tilde.* . Tens acesso a
>> estes grupos através de qualquer servidor do tildeverso, usando SSH,
>
> Eles não conhecem a Internet?

O evento que me fez descobrir das atitutes de repressão de discurso,
feita por alguns administradores do tildeverso, e a partilha de
informação com entidades de armazenamento de informação e profiling de
utilizadores, não tem a haver com a USENET ou o SSH.

>> mas no tilde.club , podes postar nestes grupos fora de SSH , usando o
>> teu cliente de USENET favorito, com a tua password da conta
>> tilde.club.
>
> Pelo menos um conhece. :)
>
>> Se o teu cliente de USENET for o Gnus do GNU Emacs, isto faz pouca
>> diferença, porque com o Gnus dá para configurar ter acesso à USENET
>> através de uma conexão SSH. O Gnus é muito poderoso :-)
>
> :-)
>
>> De qualquer das maneiras, sugiro o tilde.club. Talvez até um dia te
>> juntes ao nosso IRC (o IRC do tilde.club, chama-se Newnet). É só fazeres
>> SSH e executares `chat` :-)
>
> Eles têm uma rede IRC que só deve ser usada de um dos hosts tilde? :-)

A rede IRC da tilde.club é de acesso público. Não precisas de ter uma
conta tilde para a acederes. -> irc.newnet.net

[toc] | [prev] | [next] | [standalone]


#274

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-08 17:16 -0300
Message-ID<87plw4h432.fsf@example.com>
In reply to#272
Daniel Cerqueira <dan.list@lispclub.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>
>>> Patricia Ferreira <pferreira@example.com> writes:
>>>
>>>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>>>
>>>>> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
>>>>> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
>>>>> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
>>>>> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>>>>>
>>>>> Vê https://tildeverse.org/ .
>>>>>
>>>>> O https://tilde.club/ também tem um servidor Usenet. Aconselho
>>>>> subscrever ao grupo tilde.art.ascii ;-) .
>>>>
>>>> Fabuloso.  Preciso criar conta lá pra conseguir postar?
>>>
>>> Sugiro criares uma conta em tilde.club . É o tilde original. Os outros
>>> tildes tem administradores que não aprovam a liberdade de expressão,
>>> infelizmente. Fiquei a saber isso através de uns eventos recentes.
>>
>> Que loucura.
>>
>>> Depois sim, consegues postar nos grupos USENET tilde.* . Tens acesso a
>>> estes grupos através de qualquer servidor do tildeverso, usando SSH,
>>
>> Eles não conhecem a Internet?
>
> O evento que me fez descobrir das atitutes de repressão de discurso,
> feita por alguns administradores do tildeverso, e a partilha de
> informação com entidades de armazenamento de informação e profiling de
> utilizadores, não tem a haver com a USENET ou o SSH.

Estou com dificuldade de entender aqui.  Vamos brincar de uma
brincadeira literária que é assim.  Faz de conta que estamos descrevendo
um personagem chamado Joãozinho.  O exercício é---em vez de dizer
``Joãozinho é um rapaz que às vezes falta com seus compromissos'', a
gente deve dizer ``Joãozinho é irresponsabilíssimo.''  Em vez de
dizer---``Joãozinho é um cara legal, mas às vezes prega uma
mentirinha'', a gente vai dizer---``Joãozinho não poderia salvar sua
vida se tivesse que dizer a verdade.''

Aguardo sua tradução do parágrafo acima.  É só uma brincadeira.  Tenha
espírito. :)

>>> mas no tilde.club , podes postar nestes grupos fora de SSH , usando o
>>> teu cliente de USENET favorito, com a tua password da conta
>>> tilde.club.
>>
>> Pelo menos um conhece. :)
>>
>>> Se o teu cliente de USENET for o Gnus do GNU Emacs, isto faz pouca
>>> diferença, porque com o Gnus dá para configurar ter acesso à USENET
>>> através de uma conexão SSH. O Gnus é muito poderoso :-)
>>
>> :-)
>>
>>> De qualquer das maneiras, sugiro o tilde.club. Talvez até um dia te
>>> juntes ao nosso IRC (o IRC do tilde.club, chama-se Newnet). É só fazeres
>>> SSH e executares `chat` :-)
>>
>> Eles têm uma rede IRC que só deve ser usada de um dos hosts tilde? :-)
>
> A rede IRC da tilde.club é de acesso público. Não precisas de ter uma
> conta tilde para a acederes. -> irc.newnet.net

Tive que ir lá pra conseguir ativar minha conta.  Agora cheguei.  Estou
lá tocando o terror nos grupos.  Lol.  Encontrei um amigo por lá que é
daqui da USENET.  Não te vejo por lá.

[toc] | [prev] | [next] | [standalone]


#275

FromDaniel Cerqueira <dan.list@lispclub.com>
Date2024-03-08 21:11 +0000
Message-ID<87il1wzax7.fsf@lispclub.com>
In reply to#274
Patricia Ferreira <pferreira@example.com> writes:

> Daniel Cerqueira <dan.list@lispclub.com> writes:
>
>> Patricia Ferreira <pferreira@example.com> writes:
>>
>>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>>
>>>> Patricia Ferreira <pferreira@example.com> writes:
>>>>
>>>>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>>>>
>>>>>> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
>>>>>> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
>>>>>> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
>>>>>> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>>>>>>
>>>>>> Vê https://tildeverse.org/ .
>>>>>>
>>>>>> O https://tilde.club/ também tem um servidor Usenet. Aconselho
>>>>>> subscrever ao grupo tilde.art.ascii ;-) .
>>>>>
>>>>> Fabuloso.  Preciso criar conta lá pra conseguir postar?
>>>>
>>>> Sugiro criares uma conta em tilde.club . É o tilde original. Os outros
>>>> tildes tem administradores que não aprovam a liberdade de expressão,
>>>> infelizmente. Fiquei a saber isso através de uns eventos recentes.
>>>
>>> Que loucura.
>>>
>>>> Depois sim, consegues postar nos grupos USENET tilde.* . Tens acesso a
>>>> estes grupos através de qualquer servidor do tildeverso, usando SSH,
>>>
>>> Eles não conhecem a Internet?
>>
>> O evento que me fez descobrir das atitutes de repressão de discurso,
>> feita por alguns administradores do tildeverso, e a partilha de
>> informação com entidades de armazenamento de informação e profiling de
>> utilizadores, não tem a haver com a USENET ou o SSH.
>
> Estou com dificuldade de entender aqui.  Vamos brincar de uma
> brincadeira literária que é assim.  Faz de conta que estamos descrevendo
> um personagem chamado Joãozinho.  O exercício é---em vez de dizer
> ``Joãozinho é um rapaz que às vezes falta com seus compromissos'', a
> gente deve dizer ``Joãozinho é irresponsabilíssimo.''  Em vez de
> dizer---``Joãozinho é um cara legal, mas às vezes prega uma
> mentirinha'', a gente vai dizer---``Joãozinho não poderia salvar sua
> vida se tivesse que dizer a verdade.''
>
> Aguardo sua tradução do parágrafo acima.  É só uma brincadeira.  Tenha
> espírito. :)
>
>>>> mas no tilde.club , podes postar nestes grupos fora de SSH , usando o
>>>> teu cliente de USENET favorito, com a tua password da conta
>>>> tilde.club.
>>>
>>> Pelo menos um conhece. :)
>>>
>>>> Se o teu cliente de USENET for o Gnus do GNU Emacs, isto faz pouca
>>>> diferença, porque com o Gnus dá para configurar ter acesso à USENET
>>>> através de uma conexão SSH. O Gnus é muito poderoso :-)
>>>
>>> :-)
>>>
>>>> De qualquer das maneiras, sugiro o tilde.club. Talvez até um dia te
>>>> juntes ao nosso IRC (o IRC do tilde.club, chama-se Newnet). É só fazeres
>>>> SSH e executares `chat` :-)
>>>
>>> Eles têm uma rede IRC que só deve ser usada de um dos hosts tilde? :-)
>>
>> A rede IRC da tilde.club é de acesso público. Não precisas de ter uma
>> conta tilde para a acederes. -> irc.newnet.net
>
> Tive que ir lá pra conseguir ativar minha conta.  Agora cheguei.  Estou
> lá tocando o terror nos grupos.  Lol.  Encontrei um amigo por lá que é
> daqui da USENET.  Não te vejo por lá.

O teu amigo deve ser o "yeti", certo?

Qual é o teu nickname do IRC?

[toc] | [prev] | [next] | [standalone]


#277

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-08 18:38 -0300
Message-ID<87edckflqa.fsf@example.com>
In reply to#275
Daniel Cerqueira <dan.list@lispclub.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>
>>> Patricia Ferreira <pferreira@example.com> writes:
>>>
>>>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>>>
>>>>> Patricia Ferreira <pferreira@example.com> writes:
>>>>>
>>>>>> Daniel Cerqueira <dan.list@lispclub.com> writes:
>>>>>>
>>>>>>> O Tildeverso é um conjunto de servidores Unix-like, em que o registo de
>>>>>>> utilizadores está aberto ao público. Assim cada pessoa, pode ter uma
>>>>>>> ``shell'' remota, onde pode colocar ficheiros na web, usar programas
>>>>>>> através de SSH, fazer páginas da web, jogar jogos. Esse tipo de coisas.
>>>>>>>
>>>>>>> Vê https://tildeverse.org/ .
>>>>>>>
>>>>>>> O https://tilde.club/ também tem um servidor Usenet. Aconselho
>>>>>>> subscrever ao grupo tilde.art.ascii ;-) .
>>>>>>
>>>>>> Fabuloso.  Preciso criar conta lá pra conseguir postar?
>>>>>
>>>>> Sugiro criares uma conta em tilde.club . É o tilde original. Os outros
>>>>> tildes tem administradores que não aprovam a liberdade de expressão,
>>>>> infelizmente. Fiquei a saber isso através de uns eventos recentes.
>>>>
>>>> Que loucura.
>>>>
>>>>> Depois sim, consegues postar nos grupos USENET tilde.* . Tens acesso a
>>>>> estes grupos através de qualquer servidor do tildeverso, usando SSH,
>>>>
>>>> Eles não conhecem a Internet?
>>>
>>> O evento que me fez descobrir das atitutes de repressão de discurso,
>>> feita por alguns administradores do tildeverso, e a partilha de
>>> informação com entidades de armazenamento de informação e profiling de
>>> utilizadores, não tem a haver com a USENET ou o SSH.
>>
>> Estou com dificuldade de entender aqui.  Vamos brincar de uma
>> brincadeira literária que é assim.  Faz de conta que estamos descrevendo
>> um personagem chamado Joãozinho.  O exercício é---em vez de dizer
>> ``Joãozinho é um rapaz que às vezes falta com seus compromissos'', a
>> gente deve dizer ``Joãozinho é irresponsabilíssimo.''  Em vez de
>> dizer---``Joãozinho é um cara legal, mas às vezes prega uma
>> mentirinha'', a gente vai dizer---``Joãozinho não poderia salvar sua
>> vida se tivesse que dizer a verdade.''
>>
>> Aguardo sua tradução do parágrafo acima.  É só uma brincadeira.  Tenha
>> espírito. :)

Lol.  Não gostou da brincadeira. :)

>>>>> mas no tilde.club , podes postar nestes grupos fora de SSH , usando o
>>>>> teu cliente de USENET favorito, com a tua password da conta
>>>>> tilde.club.
>>>>
>>>> Pelo menos um conhece. :)
>>>>
>>>>> Se o teu cliente de USENET for o Gnus do GNU Emacs, isto faz pouca
>>>>> diferença, porque com o Gnus dá para configurar ter acesso à USENET
>>>>> através de uma conexão SSH. O Gnus é muito poderoso :-)
>>>>
>>>> :-)
>>>>
>>>>> De qualquer das maneiras, sugiro o tilde.club. Talvez até um dia te
>>>>> juntes ao nosso IRC (o IRC do tilde.club, chama-se Newnet). É só fazeres
>>>>> SSH e executares `chat` :-)
>>>>
>>>> Eles têm uma rede IRC que só deve ser usada de um dos hosts tilde? :-)
>>>
>>> A rede IRC da tilde.club é de acesso público. Não precisas de ter uma
>>> conta tilde para a acederes. -> irc.newnet.net
>>
>> Tive que ir lá pra conseguir ativar minha conta.  Agora cheguei.  Estou
>> lá tocando o terror nos grupos.  Lol.  Encontrei um amigo por lá que é
>> daqui da USENET.  Não te vejo por lá.
>
> O teu amigo deve ser o "yeti", certo?

Isso.  Você encontra ele por comp.misc, por exemplo.

> Qual é o teu nickname do IRC?

Não estou no IRC.  Só passei por lá.

[toc] | [prev] | [next] | [standalone]


#268

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-05 17:23 -0300
Message-ID<878r2wsa0o.fsf@example.com>
In reply to#259
Patricia Ferreira <pferreira@example.com> writes:

[...]

>> Oi Patricia. O PCL explica isso dos loops. O livro está aberto online em
>> https://gigamonkeys.com/book/ .
>>
>> Bons processamentos.
>
> Thanks.  Vou ler o ``LOOP for black belts''.  Mas não sei se pretendo
> usar esses truques todos, não.  Parece difícil de entender como essas
> coisas funcionam.  Ainda não sei o que vai acontecer.  De repente vou
> usar pra caramba. :)

Meu primeiro loop:

(defun get-account (username)
  (loop for u in *accounts*
        do (when (eq username (account-username u))
             (return u))))

Acho que estou é gostando muito de /loop/.  Dificilmente vou usar toda
essa expressividade, mas certamente vou usá-lo diariamente daqui pra
frente.

[toc] | [prev] | [next] | [standalone]


#269

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-05 19:50 -0300
Message-ID<87v860qomo.fsf@example.com>
In reply to#268
Patricia Ferreira <pferreira@example.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
> [...]
>
>>> Oi Patricia. O PCL explica isso dos loops. O livro está aberto online em
>>> https://gigamonkeys.com/book/ .
>>>
>>> Bons processamentos.
>>
>> Thanks.  Vou ler o ``LOOP for black belts''.  Mas não sei se pretendo
>> usar esses truques todos, não.  Parece difícil de entender como essas
>> coisas funcionam.  Ainda não sei o que vai acontecer.  De repente vou
>> usar pra caramba. :)
>
> Meu primeiro loop:
>
> (defun get-account (username)
>   (loop for u in *accounts*
>         do (when (eq username (account-username u))
>              (return u))))
>
> Acho que estou é gostando muito de /loop/.  Dificilmente vou usar toda
> essa expressividade, mas certamente vou usá-lo diariamente daqui pra
> frente.

Eis meu segundo.  Gere um nome (de arquivo) aleatório e tente usá-lo.
Se calhar de alguém já tê-lo escolhido, tente de novo (com outro nome).
Feito isso, retorne-nos esse nome sortudo e pra que a gente possa
renomeá-lo pro seu nome final---accounts.lisp.

(defun write-accounts ()
  (let ((name
          (loop 
            (let* ((tmp (random-string 10))
                   (name (format nil "~a.tmp" tmp)))
              (when 
                  (ignore-errors 
                   (with-open-file 
                       (s name
                          :direction :output
                          :if-exists :error
                          :if-does-not-exist :create)
                     (write *accounts* :stream s)))
                (return name))))))
    (rename-file name "accounts.lisp")
    *accounts*))

Tecnicamente temos um problema com esse procedimento.  Se o rename-file
não obtiver sucesso, nem vamos saber.

[toc] | [prev] | [next] | [standalone]


#270

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-05 20:05 -0300
Message-ID<87jzmgqnyl.fsf@example.com>
In reply to#269
Patricia Ferreira <pferreira@example.com> writes:

[...]

> Eis meu segundo.  Gere um nome (de arquivo) aleatório e tente usá-lo.
> Se calhar de alguém já tê-lo escolhido, tente de novo (com outro nome).
> Feito isso, retorne-nos esse nome sortudo e pra que a gente possa
> renomeá-lo pro seu nome final---accounts.lisp.
>
> (defun write-accounts ()
>   (let ((name
>           (loop 
>             (let* ((tmp (random-string 10))
>                    (name (format nil "~a.tmp" tmp)))
>               (when 
>                   (ignore-errors 
>                    (with-open-file 
>                        (s name
>                           :direction :output
>                           :if-exists :error
>                           :if-does-not-exist :create)
>                      (write *accounts* :stream s)))
>                 (return name))))))
>     (rename-file name "accounts.lisp")
>     *accounts*))
>
> Tecnicamente temos um problema com esse procedimento.  Se o rename-file
> não obtiver sucesso, nem vamos saber.

Não sei o que fazer se o rename não ocorrer, mas ficamos a versão final:

(defun write-accounts ()
  (let ((name
          (loop 
            (let* ((tmp (random-string 10))
                   (name (format nil "~a.tmp" tmp)))
              (when 
                  (ignore-errors 
                   (with-open-file 
                       (s name
                          :direction :output
                          :if-exists :error
                          :if-does-not-exist :create)
                     (write *accounts* :stream s)))
                (return name))))))
    (if (ignore-errors (rename-file name "accounts.lisp"))
        *accounts*
        (format t "could not rename ~a to account.lisp" name))))

[toc] | [prev] | [next] | [standalone]


#271

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-05 20:07 -0300
Message-ID<87cys8qnvt.fsf@example.com>
In reply to#270
Patricia Ferreira <pferreira@example.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
> [...]
>
>> Eis meu segundo.  Gere um nome (de arquivo) aleatório e tente usá-lo.
>> Se calhar de alguém já tê-lo escolhido, tente de novo (com outro nome).
>> Feito isso, retorne-nos esse nome sortudo e pra que a gente possa
>> renomeá-lo pro seu nome final---accounts.lisp.
>>
>> (defun write-accounts ()
>>   (let ((name
>>           (loop 
>>             (let* ((tmp (random-string 10))
>>                    (name (format nil "~a.tmp" tmp)))
>>               (when 
>>                   (ignore-errors 
>>                    (with-open-file 
>>                        (s name
>>                           :direction :output
>>                           :if-exists :error
>>                           :if-does-not-exist :create)
>>                      (write *accounts* :stream s)))
>>                 (return name))))))
>>     (rename-file name "accounts.lisp")
>>     *accounts*))
>>
>> Tecnicamente temos um problema com esse procedimento.  Se o rename-file
>> não obtiver sucesso, nem vamos saber.
>
> Não sei o que fazer se o rename não ocorrer, mas ficamos a versão final:
>
> (defun write-accounts ()
>   (let ((name
>           (loop 
>             (let* ((tmp (random-string 10))
>                    (name (format nil "~a.tmp" tmp)))
>               (when 
>                   (ignore-errors 
>                    (with-open-file 
>                        (s name
>                           :direction :output
>                           :if-exists :error
>                           :if-does-not-exist :create)
>                      (write *accounts* :stream s)))
>                 (return name))))))
>     (if (ignore-errors (rename-file name "accounts.lisp"))
>         *accounts*
>         (format t "could not rename ~a to account.lisp" name))))

Lol.  Não é isso que quero, não.  O que quero é:

(defun write-accounts ()
  (let ((name
          (loop 
            (let* ((tmp (random-string 10))
                   (name (format nil "~a.tmp" tmp)))
              (when 
                  (ignore-errors 
                   (with-open-file 
                       (s name
                          :direction :output
                          :if-exists :error
                          :if-does-not-exist :create)
                     (write *accounts* :stream s)))
                (return name))))))
    (if (ignore-errors (rename-file name "accounts.lisp"))
        *accounts*
        (format nil "could not rename ~a to accounts.lisp" name))))

PACKAGE> (write-accounts)
"could not rename wqjjpdlifi.tmp to accounts.lisp"

Agora sim.

[toc] | [prev] | [next] | [standalone]


#273

FromPatricia Ferreira <pferreira@example.com>
Date2024-03-08 17:12 -0300
Message-ID<8734t0iity.fsf@example.com>
In reply to#271
Patricia Ferreira <pferreira@example.com> writes:

> Patricia Ferreira <pferreira@example.com> writes:
>
>> Patricia Ferreira <pferreira@example.com> writes:
>>
>> [...]
>>
>>> Eis meu segundo.  Gere um nome (de arquivo) aleatório e tente usá-lo.
>>> Se calhar de alguém já tê-lo escolhido, tente de novo (com outro nome).
>>> Feito isso, retorne-nos esse nome sortudo e pra que a gente possa
>>> renomeá-lo pro seu nome final---accounts.lisp.
>>>
>>> (defun write-accounts ()
>>>   (let ((name
>>>           (loop 
>>>             (let* ((tmp (random-string 10))
>>>                    (name (format nil "~a.tmp" tmp)))
>>>               (when 
>>>                   (ignore-errors 
>>>                    (with-open-file 
>>>                        (s name
>>>                           :direction :output
>>>                           :if-exists :error
>>>                           :if-does-not-exist :create)
>>>                      (write *accounts* :stream s)))
>>>                 (return name))))))
>>>     (rename-file name "accounts.lisp")
>>>     *accounts*))
>>>
>>> Tecnicamente temos um problema com esse procedimento.  Se o rename-file
>>> não obtiver sucesso, nem vamos saber.
>>
>> Não sei o que fazer se o rename não ocorrer, mas ficamos a versão final:
>>
>> (defun write-accounts ()
>>   (let ((name
>>           (loop 
>>             (let* ((tmp (random-string 10))
>>                    (name (format nil "~a.tmp" tmp)))
>>               (when 
>>                   (ignore-errors 
>>                    (with-open-file 
>>                        (s name
>>                           :direction :output
>>                           :if-exists :error
>>                           :if-does-not-exist :create)
>>                      (write *accounts* :stream s)))
>>                 (return name))))))
>>     (if (ignore-errors (rename-file name "accounts.lisp"))
>>         *accounts*
>>         (format t "could not rename ~a to account.lisp" name))))
>
> Lol.  Não é isso que quero, não.  O que quero é:
>
> (defun write-accounts ()
>   (let ((name
>           (loop 
>             (let* ((tmp (random-string 10))
>                    (name (format nil "~a.tmp" tmp)))
>               (when 
>                   (ignore-errors 
>                    (with-open-file 
>                        (s name
>                           :direction :output
>                           :if-exists :error
>                           :if-does-not-exist :create)
>                      (write *accounts* :stream s)))
>                 (return name))))))
>     (if (ignore-errors (rename-file name "accounts.lisp"))
>         *accounts*
>         (format nil "could not rename ~a to accounts.lisp" name))))
>
> PACKAGE> (write-accounts)
> "could not rename wqjjpdlifi.tmp to accounts.lisp"
>
> Agora sim.

Lol.  Eis meu terceiro loop.

(defun size-of-longest-username ()
  (loop for u in *accounts*
        maximizing (length (account-username u))))

Escrevi isso sem nem ter que olhar nada pra relembrar.  Estou gostando
de loop.  Esse é o fato.  De fato são coisas que a gente faz muito.  A
comunidade Lisp tem sabedoria aí.

[toc] | [prev] | [standalone]


Back to top | Article view | pt.comp.programacao


csiph-web