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

2013-07-16 Thread Gustavo Massaccesi
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


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

2013-07-16 Thread Matthias Felleisen

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


_
  Racket Developers list:
  http://lists.racket-lang.org/dev