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


Groups > pt.comp.programacao > #205

Re: sobre NIL

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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