[racket] Variable naming conventions

From: Jeremy Kun (kun.jeremy at gmail.com)
Date: Wed Sep 14 17:14:50 EDT 2011

As I get deeper and deeper into Racket I notice a lot of interesting
identifiers that seem to follow a naming convention, but I can't figure out
what the convention is.

For instance, extract-binding/single seems to use the slash to indicate that
it only returns a single value, as opposed to a list of binding values (or
actually, I don't know what the alternative might be). But then the name
send/suspend/dispatch doesn't seem to follow that convention; instead it
seems to mean send, *then* suspend, *then *dispatch.

Of course, dashes are for spacing, question marks are for boolean-valued
functions or boolean variables, exclamation marks are for mutation,
asterisks for recursive access (like let*), an arrow -> usually indicates
type-conversion, and it seems that colons indicate subtyping (as in
exn:fail:contract:divide-by-zero). So my question is mostly: when is a slash
appropriate, and what does it generally express?

Are there any other significant naming conventions I may run across? perhaps
using some of ~ @ $ ^ & . _ + = . Is it considered bad form to use full UTF
characters in identifiers?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110914/61fe52ce/attachment.html>

Posted on the users mailing list.