Por que o DrRacket IDE considera alguns identificadores como "símbolos" e outros como "palavras-chave"? Qual é a diferença?

5

Por que o IDE de DrRacket (tipo de esquema) destaca alguns dos identificadores como "palavras-chave" (por exemplo, define , lambda , send* ) e os outros como "símbolos" (identificadores definidos pelo usuário, + , - , abs , send , send+ , etc.)?

Estou particularmente confuso com a diferença entre send* e send+ . Para referência, aqui estão os princípios de suas definições:

(define-syntax (send* stx) ...

(define-syntax (send+ stx) ...

(É possível que eu não use os termos "identificador", "símbolo" e "palavra-chave" completamente corretamente, mas é assim que alguns deles parecem ser usados nas preferências do DrRacket.)

A menos que isso seja um bug, ele deve ser explicado pela linguagem "semântica", então eu decidi perguntar aqui.

    
por Alexey 31.12.2013 / 11:07
fonte

1 resposta

3

O DrRacket mantém uma lista de palavras-chave que ele entende por recuo automático, que você pode encontrar nas Preferências (em Editar- > Recuo). Se um identificador estiver listado como uma palavra-chave para recuo, o DrRacket também o destacará de forma diferente se o esquema de cores escolhido diferenciar as palavras-chave dos identificadores simples.

Identificadores como + não são destacados porque são apenas nomes de funções, não "formulários especiais" como if e cond . Por outro lado, send+ não é destacado apenas porque as palavras-chave padrão do DrRacket não contêm todas as formas sintáticas fornecidas pelo Racket.

    
por 06.01.2014 / 12:37
fonte