Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pt.comp.programacao > #205
| From | Patricia Ferreira <pferreira@example.com> |
|---|---|
| Newsgroups | pt.comp.programacao |
| Subject | Re: sobre NIL |
| Date | 2024-01-28 22:23 -0300 |
| Organization | A noiseless patient Spider |
| Message-ID | <87jzntorqu.fsf@ic.ufrj.br> (permalink) |
| References | <875xzezi84.fsf@example.com> <87le89zjnf.fsf@brilhante.top> <87h6ixxxll.fsf@example.com> <87cytlz6z1.fsf@brilhante.top> |
Daniel Cerqueira <dan.list@brilhante.top> writes:
> Patricia Ferreira <pferreira@example.com> writes:
>
>> Tem um erro de digitação lá no Madhu.
>>
>> ``(consp nil) has to be true. NIL cannot be of type CONS.''
>>
>> Ele quer dizer (consp nil) tem que ser *falso*. Tem que ser falso pra
>> que a gente possa distingui-lo de uma célula cons verdadeira. O tipo
>> Lista é matematicamente definido:
>
> Sim, apesar do erro de escrita, consegui entender pois já conhecia
> CONSP.
>
>> Assim, qualquer procedimento que consome uma lista tem a forma
>>
>> (defun p (ls)
>> (cond ((null ls) 'something)
>> ((consp ls) (car ls) (p (cdr ls)))))
>>
>> Se NIL for um /cons/, não conseguimos distinguir o fim do não-fim.
>
> Se NIL fosse um /cons/, o código que escreveste acima continuaria a
> funcionar corretamente. Porque o COND está à espera que uma preposição
> seja verdadeira para executar o código correspondente. Chegando ao NIL,
> esse código executaria o 'something, tal como é esperado. E depois
> saíria do COND (não procuraria por mais preposições).
>
> Esse código correria bem, quer (consp nil) => T , quer (consp nil) =>
> NIL .
Bem observado. Mas só por causa da ordem do cond. Se trocarmos a
ordem, ele não correria bem, não. Referi-me à forma do procedimento
também; não a um procedimento propriamente. Deveria ter sido mais claro
e escrever algo assim:
(defun p (ls)
(cond ((consp ls) (... (car ls) ... (p (cdr ls)) ...))
((null ls) 'something)))
Agora pelo menos aquele (car ls) não está solto por lá.
Back to pt.comp.programacao | Previous | Next — Previous in thread | Next in thread | Find similar
sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-27 16:31 -0300
Re: sobre NIL Daniel Cerqueira <dan.list@brilhante.top> - 2024-01-28 13:12 +0000
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-28 12:36 -0300
Re: sobre NIL Daniel Cerqueira <dan.list@brilhante.top> - 2024-01-28 17:36 +0000
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-28 22:18 -0300
Re: sobre NIL Daniel Cerqueira <dan.list@brilhante.top> - 2024-01-29 12:19 +0000
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-29 11:17 -0300
Re: sobre NIL Daniel Cerqueira <dan.list@brilhante.top> - 2024-01-29 20:53 +0000
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-29 20:19 -0300
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-28 12:54 -0300
Re: sobre NIL Daniel Cerqueira <dan.list@brilhante.top> - 2024-01-28 17:46 +0000
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-28 22:23 -0300
Re: sobre NIL Patricia Ferreira <pferreira@example.com> - 2024-01-29 11:32 -0300
Re: sobre NIL Daniel Cerqueira <dan.list@brilhante.top> - 2024-01-29 20:53 +0000
csiph-web