[racket-dev] Style guide: keywords and character conventions

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Jul 16 17:54:47 EDT 2013

You are right, fix pushed: 

> ad4f35e Matthias Felleisen <matthias at racket-lang.org> 2013-07-16 17:53
> :
> | removed #% from 'symbol table'; clarify that they are not symbols
> :
>  M pkgs/racket-pkgs/racket-doc/scribblings/style/textual.scrbl | 10 +++++---

-- Matthias



On Jul 16, 2013, at 5:16 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:

> 
> That's correct. But I am willing to accept this small inaccuracy to remind readers of the basic idea -- Matthias
> 
> 
> 
> 
> 
> On Jul 16, 2013, at 4:30 PM, Gustavo Massaccesi <gustavo at oma.org.ar> wrote:
> 
>> Hi! I was reading the draft of the style guide in the file
>> [plt]/pkgs/racket-pkgs/racket-doc/scribblings/style/textual.scrbl
>> (link: http://git.racket-lang.org/plt/blob/b2ebb0a28bf8136e75cd98316c22fe54c30eacb2:/pkgs/racket-pkgs/racket-doc/scribblings/style/textual.scrbl
>> )
>> 
>> In the lines 388 - 348, there is a list of special characters that
>> mark by convention special kind of symbols. In my opinion, "#:"
>> doesn't belong to that list, or at least it needs a special remark.
>> 
>> For example, "?" marks predicates, but "one?" is a normal symbol and
>> nothing in the language forces or assumes that it's a predicate. In
>> particular "(define one? 5)" is a legal Racket instruction, in spite
>> it is of extremely bad style.
>> 
>> But "#:" is different. It creates a special kind of data. If I
>> understand correctly at the kernel level the keyword don't have a
>> special representation. But at the Racket level there is a reader
>> extension for #: and write/print/display show the keywords with #: .
>> And many of the constructs of the language treat the keywords in a
>> special way, for example lambda, apply, ...
>> 
>> Gustavo
>> _________________________
>> Racket Developers list:
>> http://lists.racket-lang.org/dev
> 



Posted on the dev mailing list.