The Clan of Colon Keywords was willing to honor a truce.

I think for people coming from other  languages with :keywords, Racket's 
#:keywords help to signal that they are not anything like how :keywords are 
usually used.

I'm sure there are relatively better justifications for pound-colon than signaling nuances to people in their first 10 seconds of being exposed to a new language, than by encumbering the syntax for everyone, for all time. After those first 10 seconds, you've had time to tell this totally-new person from another language, "Racket keywords are somewhat different from keywords in your other language (in a way that is not worth pointing out at this early point, so sorry for the confusion, please forget we even said anything, just assume for now that keywords are similar to the keyword arguments you already know, because they are, and let me tell you about the more important things for now)."

(That said, in a particular kind of undergrad CS curriculum, in which numerous languages are thrown at students, one language after another, with students to be tested on language trivia, with little time to begin to actually learn any of the languages in a meaningful way... then, sure, teaching-to-the-test, one might make the subtly-different keyword arguments appear different between two languages, to help prepare students for the all-important test question, "How do keywords in Racket differ from keywords in Common Lisp?" I shall not be complicit in that atrocity. Fortunately, I'm not aware of anyone teaching Racket like that.)

  I'd love to see existential/toggle keywords.

Besides greatly changing how parsing could work (and complicating human code reading of procedure applications, for the same reason that parsing might have to do a lookup), imagine a common usage scenario... Procedure A shares some of its signature with procedure B, and procedure A calls B, passing some of its A's actual arguments to B. Compare the code for "passing through" Boolean arguments using existential and non-existential keywords, especially the combinatorial explosion (or need for dynamic list apply) when more than one argument is Boolean.

Neil V.

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to